MYSQL如何求两个表数据的交集

 时间:2024-10-09 23:16:29

Oracle数据库中求交集可以使用INTERSECT关键字,但是MYSQL数据库却没有这个关键字,那么MYSQL又该怎么样实现交集(两个表共有的数据)呢?

工具/原料

Navicat操作MYSQL的图形化界面

方法/步骤

1、如图所示是用到的两张表的结构和表里的初始数据,用作演示查询出交集的结果。

MYSQL如何求两个表数据的交集

MYSQL如何求两个表数据的交集

MYSQL如何求两个表数据的交集

MYSQL如何求两个表数据的交集

2、两个要求交集的表(列)的结构要一致,对应的字段数,字段类型都应该相同;将两稍僚敉视个数据的数据列用UNIONALL关键字合并;将上面的所有需要比较的列GROUPBY;最后HAV朐袁噙岿INGCOUNT(任意一列,不能多列)>1,那么就是交集。SELECTa.*FROM(SELECT*fromteacherUNIONALLSELECT*fromstudent)aGROUPBYa.id,a.name,a.sexHAVINGCOUNT(a.sex)>1

MYSQL如何求两个表数据的交集

3、内连接或者等值连接。jion(innerjion)。将两个数据列,条件必须谭终沫冀涉及需要比较的列,这里没有比较sex列,糁钶茏收所以比2步多了一行数据。SELECT*FROMstudentASaJOINteacherASbONa.name=b.nameANDa.ID=b.ID或者SELECT*FROMstudentASainnerJOINteacherASbONa.name=b.nameANDa.ID=b.ID

MYSQL如何求两个表数据的交集

4、带IN关键字的查询。需要比较多少列数据是相同的就必须有多少个IN。这个时候一定要控制列,列太多不建议用。SELECT*FROMstudentASawherea.namein(selectnamefromteacher)ANDa.IDin(selectIDfromteacher);

MYSQL如何求两个表数据的交集

5、带EXISTS关键字的子查询。这个语句说白了也是通过判断teacher中是否有满足两个相等的条件,来得出来的。SELECT*FROMstudentASawhereEXISTS(select*fromteacherbwherea.name=b.nameANDa.ID=b.ID)

MYSQL如何求两个表数据的交集

6、总结一般就三种方法:合并查询,连接查询,子查询,实现的方式有很多,根据每个人思路可能有很多种写法,通过组合多种基本查询方法来达到求交集的效果

MYSQL如何求两个表数据的交集

求 离人愁 歌词 局域网内如何禁止看视频网站 神泉一日游自驾攻略 对玩APP怎么申请拜师 怎样对网络运维进行量化考核
热门搜索
伪娘动漫 搜狐图片 悬空寺图片 春节手抄报图片大全 雅马哈摩托车图片