MYSQL外连接查询使用(小白必看!!!)

外连接查询允许返回不满足连接条件的记录,包括左外连接和右外连接。左外连接保留左表的所有记录,即使在右表中没有匹配项,相应列值填充为null。例如,查询所有非空调车信息时需使用左外连接,而右外连接则用于显示右表(如线路表)所有记录,即使在左表(如车辆表)中无对应数据。
摘要由CSDN通过智能技术生成

 外连接查询概念:

在内连接查询中,只有满足连接条件的记录才能出现在查询结果中。但在实际应用中,如果希望不满足连接条件的记录也在查询结果中出现,这时需要使用外连接查询。

根据不同的外连接形式,外连接所生成的结果集中不仅包含符合条件的数据记    录,还包含左表        或右表或左右表中所有的数据记录。

语法:                                          

SELECT 字段名称 FROM 表名 1 LEFT|RIGHT|FULL [OUTER] JOIN 表名 2 ON 表名 1. 字段名 1= 表名 2. 字段名 2

左外连接(LEFT JOIN):

左外连接的结果集包括左表的所有记录和右表中满足连接条件的记录,结果集中那些不符合连接条件的来源于右表的列值为 null。

示例1:

查询 所有非空调车的车牌号、型号、线路号、起点站和终点站。

select plateNo 车牌号 , model 型号 , lineNo 线路号 , from_station 起点站 , end_station 终点站from vehicle V  left join line L on V.lineID=L.lineID where type=' 非空调车 ';

分析:

由于需要显示所有的非空调车,所以只能外连接。如果将车辆表 vehicle 作为连接左表,线路表 line 作为右表则该连接为左外连接


示例2:

显示所有司机基本信息,并查询其所驾驶车辆和行驶线路的相关信息,要求输出司机姓名、性别、电话、车牌号、型号、线路号、起点站和终点站。

select name 司机姓名 , gender 性别 , phone 电话 , plateNo 车牌号 , model 型号 , lineNo 线路号 , from_station 起点站 , end_station 终点站 from driver D left join vehicle V

on D.driverID=V.driverID left join line L on V.lineID=L.lineID

分析:

连接表为司机表、车辆表和线路表。由于需要显示所有的司机信息,所以需要将司机表和车辆表作为左表(3 张表的连接次序为司机表、车辆表和线路表)。


 右外连接(RIGHT JOIN):

右外连接是左外连接的反向连接。右外连接的结果集包括右表的所有记录和左表中满足连接条件的记录,结果集中那些不符合连接条件的来源于左表的列值为 null。

示例:

查询所有线路的车辆信息,要求显示车牌号、型号、线路号、起点站和终点站。

select plateNo 车牌号 , model 型号 , lineNo 线路号 , from_station 起点站 , end_station 终点站from vehicle V  right join line L on V.lineID=L.lineID

分析:

由于需要显示所有的线路信息,所有只能外连接。如果车辆表 vehicle 作为连接左表,线路表 line 作为右表则该连接为右外连接


总结:

外连接查询的定义是什么?什么是左外连接

在内连接查询中,只有满足连接条件的记录才能出现在查询结果中。但在实际应用中,如果希望不满足连接条件的记录也在查询结果中出现,这时需要使用外连接查询。根据不同的外连接形式,外连接所生成的结果集中不仅包含符合条件的数据记录,还包含左表、右表或左右表中所有的数据记录。

左外连接的结果集包括左表的所有记录和右表中满足连接条件的记录,结果集中那些不符合连接条件的来源于右表的列值为 null。

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值