Je kunt het zo in een subquery verpakken. Het probleem is dat MySQL geen rijen kan bijwerken die ook worden doorzocht. Hierdoor gebruikt MySQL impliciet een tijdelijke tabel om de ID's op te slaan die u wilt verwijderen.
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
)