翻译成人话:
您不能在FROM子句中指定目标表“person”进行更新
今天在做 letcode 题遇到了 You can't specify target table 'person' for update in FROM clause,
我原先写的代码
DELETE FROM person
WHERE
Id NOT IN ( SELECT min( Id ) FROM person GROUP BY Email );
在网上搜罗了一番后找到了错误原因和解决方法
错误原因:我也没有太理解,大概是 不能在正在查询的表中更新数据
解决思路:利用缓存的思路,把原来的数据查出来,作为一个临时表进行操作
DELETE FROM person
WHERE Id NOT IN
( SELECT min( Id ) FROM ( SELECT * FROM person ) AS temp -- 将原先表中的数据放入临时表 temp中
GROUP BY Email
);