LeetCode196——删除重复的电子邮箱
我的LeetCode代码仓:https://github.com/617076674/LeetCode
原题链接:https://leetcode-cn.com/problems/delete-duplicate-emails/description/
题目描述:
知识点:DELETE语句
思路:DELETE语句+WHERE子句
当DELETE语句中的表有别名时,必须写成DELETE p1 FROM Person AS p1的形式,不能写成DELETE FROM Person AS p1的形式,这样写会报错。
另外一点,MySQL中,不能先SELECT一个表的记录,再按此条件进行更新和删除同一个表的记录,否则会报错——“You can’t specify target table for update in FROM clause”。解决办法是,将SELECT得到的结果,再通过中间表SELECT一遍,这样就规避了错误。
SQL语句:
DELETE
p1
FROM
Person AS p1, Person AS p2
WHERE
p1.Email = p2.Email AND p1.Id > p2.Id;
LeetCode解题报告: