测试数据:
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