【leetcode刷题】[简单]196. 删除重复的电子邮箱(delete duplicate emails)-mysql

删除重复的电子邮箱 delete duplicate emails

  • 题目
  • 分析
  • 解答

题目

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

+----+------------------+
| Id | Email            |
+----+------------------+
| 1  | [email protected] |
| 2  | [email protected]  |
| 3  | [email protected] |
+----+------------------+
Id 是这个表的主键。

例如,在运行你的查询语句之后,上面的 Person 表应返回以下几行:

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

代码模板:

# Write your MySQL query statement below

分析

这里是删除用delete,然后需要邮箱是重复的,所以自己和自己左联,然后找到id比自己的大的有限一样的,删除就行了

解答

# Write your MySQL query statement below
Delete p1 from Person p1
LEFT JOIN Person p2 ON p1.Email = p2.Email
Where p1.Id>p2.Id

你可能感兴趣的:(算法,leetcode)