Person表:
Id | |
---|---|
1 | a@163.com |
2 | b@163.com |
3 | a@163.com |
期望结果:
Id | |
---|---|
1 | a@163.com |
2 | b@163.com |
思路分析:
①从期望结果来看,直达的效果就是将重复的记录删除;
②首先,需要找到那些重复的记录。我们可以将Person表作为p1表和p2表进行连接,先找到重复的记录。
select p1.* from Person p1,Person p2 where p1.Emali = p2.Email;
③找到重复的记录后,我们要确定删除哪些记录,最简单的方式就是保留Id最小的那条记录,删除剩余的重复记录。
select p1.* from Person p1,Person p2 where p1.Email = p2.Email and p1.Id > p2.Id;
④找到需要删除的重复记录后,接着就是进行删除操作。
delete p1 from Person p1,Person p2 where p1.Email = p2.Email and p1.Id > p2.Id;