您可以像这样将其包装在子查询中。问题是MySQL无法更新它也在查询的行。这将使MySQL隐式使用一个临时表来存储您要删除的ID。
DELETe FROM tasksWHERe tasks.id IN (SELECt id FROM(SELECt tasks.idFROM tasks JOIN deadlines ON deadlines.id = deadline_idWHERe DATE_ADD(tasks.created_at, INTERVAL deadlines.duration DAY) <= NOW()) AS taskstodelete)



