测试数据:

test01

mysql 交集 性能 mysql交集怎么写_mysql 交集 性能

 

 

 test02

 

 一、并集

使用UNION ALL关键字

UNION ALL (并集  不去重)

select * from test01 
UNION ALL
select * from test02

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

mysql 交集 性能 mysql交集怎么写_并集_02

 

 

 UNION  (并集 去重)

select * from test01 
UNION 
select * from test02

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

mysql 交集 性能 mysql交集怎么写_等值连接_03

 

 二、交集

--   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)

mysql 交集 性能 mysql交集怎么写_mysql 交集 性能_04

 

 三、差集

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

mysql 交集 性能 mysql交集怎么写_并集_05