题目
Write a SQL query to delete all duplicate email entries in a table named Person, keeping only unique emails based on its smallest Id.
Id | |
---|---|
1 | john@example.com |
2 | bob@example.com |
3 | john@example.com |
Id is the primary key column for this table.
For example, after running your query, the above Person table should have the following rows:
Id | |
---|---|
1 | john@example.com |
2 | bob@example.com |
题目来源:https://leetcode.com/problems/delete-duplicate-emails/
代码
Email重复的话,保留ID最小的那条记录,其余的删除。
#方法一:
# Write your MySQL query statement below
delete from Person
where Id not in (
select * from (
select MIN(Id) from Person group by Email
) as tb
);
#方法二:
# Write your MySQL query statement below
delete p1
from Person as p1, Person as p2
where p1.Email = p2.Email and p1.Id > p2.Id;