查询一个表中的两个字段值相同的数据

比如有下面的表:person

看到id=1和id=5,id=2和id=6的两行数据中的,name,city值相同,那么怎样把它查询出来呢?

 

先看下面的一条SQL:

select p1.name,p1.city from person p1,person p2 where p1.name=p2.name and p1.city=p2.city;

这条语句的意思是利用自身,单个表之间的链接查询。但结果却是如下:

这个可看出,不是我们要的结果,错误原因是,一个表中相同的一个数据行进行比较,还是满足条件。故输出了。

所以,可以用下面的来解决:

select p1.name,p1.city from person p1,person p2 where p1.name=p2.name and p1.city=p2.city and p1.id!=p2.id;

下面来看看结果:

满足了我们的要求。这样的方法可以扩展到1个字段,2个字段,3个字段,甚至更多。

一些软件系统是不允许有2个,3个。。。字段相同的,可以通过上面的方法查询出来,并对没用的数据进行删除。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值