当前位置: 代码迷 >> DB2 >> 查询不同姓名,相同的账号解决方法
  详细解决方案

查询不同姓名,相同的账号解决方法

热度:7991   发布时间:2013-02-26 00:00:00.0
查询不同姓名,相同的账号
请问如何查询不同姓名的相同的accountID

表 Employee

姓名   账号
zs  111
ls 111
zs 123
zs 111
wu 111

查询结果

姓名   账号
zs 111
ls 111
wu 111

我现在用的是
select * from 表 where 重复字段 in (select 重复字段 from 表group by 重复字段 having count(*)>1)
可以查出相同的账号
但是结果是

姓名   账号
zs  111
ls 111
zs 111
wu 111

这时候 我想把 相同的姓名去掉,请问怎么去掉?

select distinct 姓名,账号 from 表 where 重复字段 in (select 重复字段 from 表group by 重复字段 having count(*)>1)

?? 这样可以吗?



------解决方案--------------------------------------------------------
SQL code
select distinct 姓名,账号 from 表 a inner join 表 b on a.账号=b.账号 and a.姓名!=b.姓名
------解决方案--------------------------------------------------------
需要加上a. ,b.
SQL code
select distinct a.姓名,a.账号 from 表 a inner join 表 b on a.账号=b.账号 and a.姓名!=b.姓名
------解决方案--------------------------------------------------------
select distinct a.姓名,a.账号 from Employee a, Employee b where a.账号=b.账号 and a.姓名!=b.姓名
------解决方案--------------------------------------------------------
select 姓名,账号 from (SELECT a.* from ttq a left join ttq b on a.姓名<>b.姓名 and a.账号=b.账号 where b.账号 is not null) group by 姓名,账号

or
SELECT distinct a.* from ttq a left join ttq b on a.姓名<>b.姓名 and a.账号=b.账号 where b.账号 is not null

------解决方案--------------------------------------------------------
探讨
引用:
需要加上a. ,b.

SQL code
select distinct a.姓名,a.账号 from 表 a inner join 表 b on a.账号=b.账号 and a.姓名!=b.姓名


这个可以达到效果, 还有一个问题,
我的表不是直接有的,我的表是一个select 语句, 我把这个select语句嵌套到 这里面就行不通……
  相关解决方案