百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> mysql怎么查两个表的交集
分享文章到:

mysql怎么查两个表的交集

发布时间:10/01 来源:未知 浏览: 关键词:

mysql查询两个表的交集办法:1、将两个数据的数据列用UNION ALL关键字合并查询交集;2、使用带IN关键字的查询;3、使用带EXISTS关键字的子查询。

mysql查询两个表的交集办法:

1、两个要求交集的表(列)的构造要一致,对应的字段数,字段类型都应当雷同;将两个数据的数据列用 UNION ALL 关键字合并;将上面的所有需要比力的列 GROUP BY ;最后 HAVING COUNT(任意一列,不克不及多列)>1,那么就是交集。

SELECT a.* FROM(    SELECT * from teacher    UNION ALL    SELECT * from student)a GROUP BY a.id,a.name,a.sex HAVING COUNT(a.sex)>1

01f80a57ceafcaa9c47930eb0804d5e.png

2、内连接或者等值连接。jion(inner jion)。将两个数据列,前提必需触及需要比力的列,这里没有比力sex列,所以比2步多了一行数据。

SELECT * FROM student AS a JOIN teacher AS b ON a.name =b.name AND a.ID=b.ID或者SELECT * FROM student AS a inner  JOIN teacher AS b ON a.name =b.name AND a.ID=b.ID

03fe92f3957024cd290504a444c247d.png

3、带IN关键字的查询。需要比力多少列数据是雷同的就必需有多少个IN。这个时候必然要操纵列,列太多不倡议用。

SELECT * FROM student AS a where a.name in (select name from teacher )AND a.ID in (select ID from teacher);

3b100e6afd219f1e1382448f8ded81b.png

4、带EXISTS关键字的子查询。这个语句说白了也是通过推断teacher中可否有知足两个相等的前提,来得出来的。

SELECT * FROM student AS a where EXISTS (select *from teacher b where a.name =b.name AND a.ID=b.ID)

d0d6e150607a6b7cb09223b168618c4.png

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有152人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板