Can't specify target table for update in FROM clause

UPDATE tbl SET col = (
  SELECT ... FROM (SELECT.... FROM) AS x);

额外嵌套了一个 SELECT 语句

例如LeetCode 中的 Delete Duplicate Emails

正解:

DELETE
FROM
    Person
WHERE
    id NOT IN ( SELECT id FROM ( SELECT min( id ) AS id FROM Person GROUP BY email ) AS m );

错解:

DELETE
FROM
    Person
WHERE
    id NOT IN ( SELECT min( id ) AS id FROM Person GROUP BY email );

  

posted @ 2019-02-26 09:39  Hello_2018  阅读(90)  评论(0编辑  收藏  举报