Anda dapat membungkusnya dalam subquery seperti itu. Masalahnya adalah MySQL tidak dapat memperbarui baris yang juga ditanyakannya. Ini akan membuat MySQL menggunakan tabel sementara secara implisit untuk menyimpan id yang ingin Anda hapus.
DELETE FROM tasks
WHERE tasks.id IN
(
SELECT id FROM
(
SELECT tasks.id
FROM tasks
JOIN deadlines ON deadlines.id = deadline_id
WHERE DATE_ADD(tasks.created_at, INTERVAL deadlines.duration DAY) <= NOW()
) AS taskstodelete
)