sql两列值查询问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 14:32:14
我想在同一张表中查询出这样数据:某一列中有相同的列值,但其对应了另一列的值却不同。
例如:表中有姓名(xm)和编号(id)两个字段,xm中有相同的值,但其id不同,怎样用SQL语句查出这样的数据?

你这是要查重,这个有标准的模式,就是自关联,例如:
SELECT A.ID, B.ID, A.XM FROM 表名 A,表名 B WHERE A.XM=B.XM AND A.ID<>B.ID

假如表名叫tab_p

select a.xm,a.id from tab_p a where exists
(select b.xm,count(*) as num from tab_p b where a.xm=b.xm group by xm having num>1)

select * from 表1
left(right) join 表2
on 表1.id=表2.id
括号是或者只写一个left和right

where xm="姓名" and id<>编号