欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

[LeetCode] 196.删除重复的电子邮箱

程序员文章站 2022-08-02 11:30:57
编写一个 SQL 查询,来删除 表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。 例如,在运行你的查询语句之后,上面的 表应返回以下几行: + + + | Id | Email | + + + | 1 | john@example.com | | 2 | bob@example.co ......

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

+----+------------------+
| id | email            |
+----+------------------+
| 1  | john@example.com |
| 2  | bob@example.com  |
| 3  | john@example.com |
+----+------------------+
id 是这个表的主键。

例如,在运行你的查询语句之后,上面的 person 表应返回以下几行:
+----+------------------+
| id | email |
+----+------------------+
| 1 | john@example.com |
| 2 | bob@example.com |
+----+------------------+

题解:

技巧:将同一个表select两次,分别为表a,表b

delete p1.* from
    person p1,person p2
where
    p1.email = p2.email and p1.id > p2.id;

摘自: