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