日期:2014-05-17  浏览次数:20924 次

跪求:查找表中某两列中内容相同的数据
表名:tb_a

数据如下
name_id seq_id buy_id sell_id
5156 10 213 123
453 10 2528 85
453 20 2582 78
453 20 254 765
154 20 2528 45
45 30 45 45
45 30 452 45
45 30 45 45

以seq_id 分组,group by seq_id,想找出 name_id,seq_id这组数据相同的行如下面

name_id seq_id buy_id sell_id
453 20 2582 78
453 20 254 765

这第一行 (453,20) = (453,20)第二行 


从上面例子需要显示的表格

name_id seq_id buy_id sell_id
453 20 2582 78
453 20 254 765
45 30 45 45
45 30 452 45
45 30 42 45


跪求sql语句,非常感谢!

------解决方案--------------------
首次按照name_id和seq_id进行分组,找出条数大于1的。
然后依据找出来的name_id和seq_id,查找要找的信息。
SELECT * FROM  tb_a t
WHERE (t.name_id,t.seq_id) IN 
(SELECT t.name_id,t.seq_id FROM  tb_a t
GROUP BY  t.name_id,t.seq_id
HAVING COUNT(*)>1 )
------解决方案--------------------

select *
  from (select *
          from (select seq_id, name_id
                  from test1
                 group by seq_id, name_id
                having count(1) > 1) a
          left join test1 b
            on a.seq_id = b.seq_id
           and a.name_id = b.name_id)