MySQL并集、交集、差集


测试数据:

test01

 

 

 test02

 

 一、并集

使用UNION ALL关键字

UNION ALL (并集  不去重)

select * from test01 
UNION ALL
select * from test02 

结果如下,六条数据全部累积起来了,并且有重复的。

 

 

 UNION  (并集 去重)

select * from test01 
UNION 
select * from test02 

结果如下,可以跟上面的对比少了两条,王浩与王浩3

 

 二、交集

--   INNER JOIN (等值连接) 只返回两个表中联结字段相等的行
    -- inner join并不以谁为基础,它只显示符合条件的记录.
SELECT a.*
    FROM test01 a 
    INNER JOIN test02 b 
        ON a.id=b.id AND a.name=b.name;

-- USING(id,name) 等价于 on后面的条件
SELECT a.* FROM test01 a 
    INNER JOIN test02 b USING(id,name)

 

 三、差集

-- 差集
SELECT a.*
FROM
  test01 a 
  LEFT JOIN test02 b 
    ON a.id=b.id AND a.name=b.name 
WHERE b.id IS NULL

 

 

 

 

 

 

 

 

 

 

 

参考文章:

https://blog.csdn.net/sanzhongguren/article/details/76615464


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM