为什么此查询不起作用?
DELETE FROM recent_edits
WHERE trackid NOT IN
(SELECT DISTINCT history.trackid
FROM history JOIN recent_edits ON history.trackid=recent_edits.trackid
GROUP BY recent_edits.trackid)
我收到此消息:“您无法为FROM子句中的更新指定目标表”recent_edits“
答案 0 :(得分:80)
尝试这种方式
DELETE FROM recent_edits
WHERE trackid NOT IN
(select * from (SELECT DISTINCT history.trackid
FROM history JOIN recent_edits ON history.trackid=recent_edits.trackid
GROUP BY recent_edits.trackid) as t);
答案 1 :(得分:15)
您无法对已锁定以进行删除的表进行后处理。使用hack select * from (query)
作为Nicola状态将生成临时表而不是直接访问。
编辑 - 确保您为所使用的表提供ID,因为它是嵌套的,并且每个表都需要uniqueID。