联合查询:关键字union,作用就是将多条查询语句的结果合并成一个结果集
#查询部们编号大于100或则名字包含a的员工信息:
常规写法:
SELECT * FROM employees
WHERE
department_id > 100
OR
last_name LIKE '%a%';
联合写法:
SELECT * FROM employees
WHERE
department_id > 100
UNION
SELECT * FROM employees
WHERE
last_name LIKE '%a%'
ORDER BY employee_id;
上例的例子不是经典使用,在实际使用中的应用场景:
如下两个数据库中:
student:
teacher:
老师表和学生表之间没有直接胡关联关系,但是又有一些共性,比如我们想查询学校所有的男老师和男学生的信息(学生和老师胡编号、姓名、出生日期、性别),这个时候就可以使用联合查询。
SELECT tno 序号, tname 名字, tsex 性别, tbirthday 出生日期
FROM student
WHERE tsex = '男'
UNION
SELECT sno, sname, ssex, sbirthday
FROM teacher
WHERE ssex = '男';
输出:
注意:
1、联合查询的输出结果必须是被联合的表都包含类似的输出项,且在输出时输出项的顺序要一直,否则联合输出时就会出现错排。
2、联合输出的结果可以取别名,但是只能在双方项的其中一个项取名。