196.删除重复的电子邮箱 发表于 2020-09-20 分类于 sql 阅读次数: 1. group by因为要求保留每种邮箱中最小的Id,因此只需要根据邮箱分组,筛选出每组邮箱最小的Id,然后删除不是最小的Id即可。 12345678delete from Personwhere Id not in ( select t.Id from ( select min(Id) as Id from Person group by Email ) t); 2. 自连接使用delete t1 from t1, t2 where..语句,而不是delete from t1 where...语句。这条语句不是从t1和t2表连接得到的临时表中删除数据,而是根据where的条件从删除t1中的数据,from只是方便where的条件。 123delete p1from Person p1 join Person p2 on p1.Email = p2.Emailwhere p1.Id > p2.Id