MySQL之LeetCode-196(删除重复的电子邮箱)

题目(简单)

编写一个 SQL 查询,来删除 Person 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。

±—±-----------------+
| Id | Email |
±—±-----------------+
| 1 | [email protected] |
| 2 | [email protected] |
| 3 | [email protected] |
±—±-----------------+
Id 是这个表的主键。
例如,在运行你的查询语句之后,上面的 Person 表应返回以下几行:

±—±-----------------+
| Id | Email |
±—±-----------------+
| 1 | [email protected] |
| 2 | [email protected] |
±—±-----------------+

解题语句

DELETE
  p
FROM
  Person AS p
  JOIN Person AS pe
    ON p.Email = pe.Email
    AND p.Id > pe.Id

这题最需要注意的是,题目说运行了你的查询语句后,应该返回什么样的结果。导致很多人都在编写查询语句。
其实这题是要编写删除语句,然后运行了删除语句后,后台自动查询表中的所有数据,进行比较

你可能感兴趣的:(MySQL,LeetCode,MySQL之LeetCode)