一个表里面的数据,剔出name,age重复的数据,怎么做?

解决方案 »

  1.   

    select a.* from tb a,(
    select name,age from tb
    group by name,age
    having count(*)>1
    ) b
    where a.name=b.name
    and a.age=b.age
      

  2.   

    剔出select a.* from tb a left join (
    select name,age from tb
    group by name,age
    having count(*)>1
    ) b
    on a.name=b.name
    and a.age=b.age
    where b.name is null
      

  3.   

    剔出                                 --我理解是查出name,age不重复的记录select a.*                           --所有字段
    from tb a 
    left join                            --左连接
    (                                    --子查询查出重复的name,age
    select name,age from tb
    group by name,age
    having count(*)>1                    --这个条件限制重复的记录
    ) b
    on a.name=b.name
    and a.age=b.age                  
    where b.name is null                 --这个条件限制只需要不重复的