Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL:você não pode especificar 'tarefas' da tabela de destino para atualização na cláusula FROM


Você pode envolvê-lo em uma subconsulta assim. O problema é que o MySQL não pode atualizar as linhas que também está consultando. Isso fará com que o MySQL use uma tabela temporária implicitamente para armazenar os ids que você deseja excluir.
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
)