Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL:Sie können keine Zieltabellen-„Aufgaben“ für die Aktualisierung in der FROM-Klausel angeben

Sie können es so in eine Unterabfrage packen. Das Problem ist, dass MySQL Zeilen, die es auch abfragt, nicht aktualisieren kann. Dadurch wird MySQL implizit eine temporäre Tabelle verwenden, um die IDs zu speichern, die Sie löschen möchten.

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
)