多表外连接

多表外连接顾名思义,是在外连接的基础之上,进行多个表格的连接,这里展示的是表格【order】同另外两个表格的外连接代码。

USE sql_store;
SELECT
o.order_id,
s.first_name,
s.customer_id,
sh.shipper_id AS shipper
FROM orders o
 RIGHT JOIN customers s
 ON o.customer_id = s.customer_id
 LEFT JOIN  shippers sh
  ON o.shipper_id = sh.shipper_id

多个表格连接是从【FROM】开始并列书写。需要注意的是,【FROM】哪一个表格,因为这个会影响后续的外连接是用左连接还是右连接,一般来说,为了整齐且明晰,会统一用左连接。展示的代码有待改善。

那么,到底是把什么放在主表格位置呢?我们关注一下【ON】的条件,条件是以customer来连接,主表格信息完整,而另一个表格【order】是不完整的,所以,我们会以信息较为完整的表格作为主表格。

练习:

练习中主表格换成了【customers】这样更好地规范格式,全部使用左连接。

USE sql_store;
SELECT 
o.order_date,
o.order_id,
c.first_name,
sh.shipper_id,
os.name
 FROM customers c
 LEFT JOIN orders o
  ON c.customer_id = o.customer_id
  LEFT JOIN shippers sh
   ON o.shipper_id = sh.shipper_id
  LEFT JOIN order_statuses os
  ON o.status = os.order_status_id

完毕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值