Union联合连接
- 把表和表之间的数据以纵向的方式连接在一起
- 若干个select子句要联合成功的话,必须满足俩个条件:1.这若干个select子句输出的列数必须是相等的2.这若干个select子句输出的数据类型是兼容的
- 代码:
--输出“每个”员工的姓名,工资,上司的名字
select "E1".员工姓名,"E1".员工工资,"E2".员工姓名 "上司姓名"
from emp "E1"
join emp "E2"
on "E1".上司编号="E2".员工编号--只输出有有上司编号的员工姓名
union--联合查询
select 员工姓名,员工工资,'没有上司' from emp where 上司编号 is null
Union和Union All的区别:
- 两者都是将多个查询结果集合并为一个,但其使用和效率有所不同。
- 对查询结果的处理:Union会把查询结果集去除重复数据行(筛选掉重复的数据),而Union All则是全部输出。
- 对排序的处理:UNION将会按照字段的顺序进行排序;UNION ALL只是简单的将两个结果合并后就返回。
- 从效率上说,UNION ALL要比UNION快很多。
- 所以如果不需要去重复和对结果集进行排序,只想简单合并结果集的话,使用Union All效率要更好。