对不起,我只是使用我的老朋友的这个帐户,他说他希望它具有更高的声誉。大声笑
我有一个看起来像这样的表,我想删除条目,其中下一个重复的条目基于first_name,middle_name和last_name以及alias列。同时保留第一个条目或具有lowest
可能ID的条目
答案 0 :(得分:1)
您可以在delete
语句中进行自我连接来实现:
delete t
from tablename t inner join tablename tt
on tt.first_name = t.first_name and tt.last_name = t.last_name and tt.alias = t.alias
and tt.id < t.id;
或通过删除除id
,id
和first_name
的每种组合中的最小last_name
以外的所有带有alias
的行:>
delete from tablename
where id not in (
select t.minid from (
select min(id) minid
from tablename
group by first_name, last_name, alias
) t
)