sql >> Base de Datos >  >> RDS >> Mysql

MySQL:no puede especificar las 'tareas' de la tabla de destino para la actualización en la cláusula FROM

Puede envolverlo en una subconsulta como esa. El problema es que MySQL no puede actualizar las filas que también está consultando. Esto hará que MySQL use una tabla temporal implícitamente para almacenar las identificaciones que desea eliminar.

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
)