Union
Union 可以将查询结果相加
案例:找出工作岗位是SALESMAN 和 MANAGER的员工
方法1:
select ename,job from emp where job='Manager' or job = 'SALESMAN';
方法2:
select ename,job from emp where job in ('manager'.'salesman');
方法3:
select ename,job from emp where job = 'manager' union select ename,job from emp where job = 'salesman';
+--------+----------+
| ename | job |
+--------+----------+
| JONES | MANAGER |
| BLAKE | MANAGER |
| CLARK | MANAGER |
| ALLEN | SALESMAN |
| WARD | SALESMAN |
| MARTIN | SALESMAN |
| TURNER | SALESMAN |
+--------+----------+
两张不相干的表拼接在一起怎么显示?
按顺序一列显示
select ename from emp union select dname from dept;
+------------+
| ename |
+------------+
| SMITH |
| ALLEN |
| WARD |
| JONES |
| MARTIN |
| BLAKE |
| CLARK |
| SCOTT |
| KING |
| TURNER |
| ADAMS |
| JAMES |
| FORD |
| MILLER |
| ACCOUNTING |
| RESEARCH |
| SALES |
| OPERATIONS |
+------------+
但是如果union的两边列数不一样则会报错:
select ename,sal from emp union select dname from dept;
ERROR 1222 (21000): The used SELECT statements have a different number of columns