概述
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
登录后复制
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
登录后复制
3、带IN关键字的查询。需要比较多少列数据是相同的就必须有多少个IN。这个时候一定要控制列,列太多不建议用。
SELECT * FROM student AS a where a.name in (select name from teacher )AND a.ID in (select ID from teacher);
登录后复制
4、带EXISTS关键字的子查询。这个语句说白了也是通过判断teacher中是否有满足两个相等的条件,来得出来的。
SELECT * FROM student AS a where EXISTS (select *from teacher b where a.name =b.name AND a.ID=b.ID)
登录后复制
以上就是mysql怎么查两个表的交集的详细内容,更多请关注靠谱客其它相关文章!
最后
以上就是高兴心锁为你收集整理的mysql怎么查两个表的交集的全部内容,希望文章能够帮你解决mysql怎么查两个表的交集所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复