UNION 合并查询结果集
例子:查询工作岗位是 MANAGER 和 SALESMAN 的员工
SELECT ename,job FROM emp where job = 'manager' or job = 'salesman';
SELECT ename,job FROM emp where job in('manager','salesman');
使用UNION
SELECT ename,job FROM emp where job = 'manager'
UNION
SELECT ename,job FROM emp where job = 'salesman';
相比表连接操作,UNION效率高,每次 JOIN 所有记录都会参与匹配,匹配次数成倍增长,
UNION可以在减少匹配次数的情况下,完成结果集的拼接。
注意事项:
- 两个结果集列数相同 -- UNION是表的上下拼接
- 列的字段不同:MySQL允许,Oracle报错 -- 要求列数与列的含义都相同