第05章04节-连接查询-全连接&多张表连接


全连接&多张表连接

一、全连接

什么是全连接?
MySQL不支持full join。oracle数据库支持。

全连接.png

两张表数据全部查询出来,没有匹配的记录,各自为对方模拟出NULL进行匹配。

客户表:t_customer
image.png
订单表:t_order
image.png
案例:查询所有的客户和订单。

1
2
3
4
5
6
7
8
select 
c.*,o.*
from
t_customer c
full join
t_order o
on
c.cid = o.cid;

二、多张表连接

三张表甚至更多张表如何进行表连接
案例:找出每个员工的部门,并且要求显示每个员工的薪资等级。

1
2
3
4
5
6
7
8
9
10
11
12
select 
e.ename,d.dname,s.grade
from
emp e
join
dept d
on
e.deptno = d.deptno
join
salgrade s
on
e.sal between s.losal and s.hisal;
image.png