多表查询连接用法
1.union 会将两张表查询出的数据进行连接而且会将重复的数据进行去重
s
select employee_id,department_id
from emp01
union
select employee_id,department_id
from emp02;
2.union all 会将两张表查询出的数据进行连接而且不会将重复的数据进行去重
select employee_id emp_id,department_id
from emp01
union all
select employee_id emp_id,department_id
from emp02
order by emp_id ;
3.intersect 将两张表中重复的数据查询出取交集
select employee_id emp_id,department_id
from emp01
## intersect
--取交集
select employee_id emp_id,department_id
from emp02
order by emp_id ; --按照emp_id 进行排序
实现union 连接的数据顺序打印出
解决思路,再增加一列,然后按照增加列排序
column a_dummy noprint;--该句适用于将多余的列不打印出来
select 'study at' as "My Dream",2 a_dummy
from dual
union
select 'I want to',1
from dual
union
select 'atguigu.com',3 from dual
order by 2 ;--按照第2列进行排序
注意点:
如果使用 union/union all/intersec 等关键值连接查询的数据,
查询的列类型必须保持一致
select employee_id emp_id,department_id,to_char(null)
from employees
union
select to_number(null),department_id,department_name
from departments;