# union
# 作用
合并查询结果集
# 特点
union的效率更高一些。对于表连接来说,每连接一次新表,则匹配的次数满足笛卡尔积,成倍的翻。
但是union可以减少匹配次数。
在减少匹配次数的情况下,还可以完成两个结果的拼接。
例如:a 连接 b 连接 c
a: 10条记录
b: 10条记录
c: 10条记录
匹配次数为 : 10*10*10 = 1000
如果改为union
a 连接 b : 10*10 = 100
a 连接 c : 10*10 = 100
100 + 100 = 200次(union把乘法变成了加法运算)
案例:查询工作岗位是 ‘MANAGER’ 和 ‘SALESMAN’ 的员工
第一种方法:or
第二种方法:in
第三种方法:union
select ename from emp where job = 'MANAGER'
union
select ename from emp where job = 'SALESMAN';
# 注意:
在使用 union 需要注意:
1. union 在结果集合并的时候,要求两个结果列数相同。
2. MYSQL 中,对应列的数据类型可以不相同,Oracle 里会报错(会要求对应列的数据类型相同)。