联合查询:
关键字union,作用就是将多条查询语句的结果合并成一个结果集。
案例:(查询部门编号大于100或名字中含有a字符的员工信息)
bash
select * from employees where department_id>100 or last_name like '%a%';
用联合查询演示:
sql
select * from employees where department_id>100
union
select * from employees where last_name like '%a%';
union是应用场景:
比如在我们有个数据库中的老师表和学生表,两者之间没有直接的关联关系,但是又有一些共通性,但是现在我们想要查询学校所有男老师和男学生的信息(学生和老师的编号,姓名,出现日期,性别),这个时候就是应用union的时候。
sql
SELECT `tno` 编号,`tname`,`tsex`,`tbirthday`
FROM `teachers`
WHERE `tsex`='男'
UNION
SELECT `sno`,`sname`,`ssex`,`sbirthday`
FROM `students`
WHERE `ssex`='男';
联合查询的特点:
- 联合查询的两个子查询的查询字段个数要一致
- 要求联合查询的子查询的查询列表顺序要在内容上保持一致
- 使用union联合默认会自动去重,如果不想去重可以将union改为union all