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

posted @ 2019-09-25 21:36  苦心明  阅读(4811)  评论(0)    收藏  举报