MySQL连接查询——外连接

外连接

外连接分为左外连接,右外连接和全外连接。

左外连接

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

SELECT
	fieldlist
FROM
	table1 
LEFT  JOIN table2 ON 
table1.column1 = table2.column2;

左外连接就是在等值连接的基础上加上主表中的未匹配数据

示例:查询所有非空调车的车牌号、型号、线路号、起点站和终点站
分析:需要显示所有非空调车,所以需要外连接

SELECT
	plateNo '车牌号',
	model '型号',
	lineNo '线路号',
	from_station '起点站',
	end_station '终点站'
FROM
	vehicle v
LEFT JOIN line l ON v.lineID = l.lineID
WHERE
	type = '非空调车';

执行结果如图:
在这里插入图片描述
最后一行为非匹配行,来源于右表列相应字段为空

右外连接

右外连接与左外连接相似,是左外连接的反向连接。
语法

SELECT
	fieldlist
FROM
	table1 
RIGHT  JOIN table2 ON 
table1.column1 = table2.column2;

示例:查询所有线路的车辆信息,要求显示车牌号、型号、线路号、起点站和终点站
分析:需要显示所有非空调车,所以需要外连接

SELECT
	plateNo '车牌号',
	model '型号',
	lineNo '线路号',
	from_station '起点站',
	end_station '终点站'
FROM
	vehicle v
RIGHT JOIN line l ON v.lineID = l.lineID;

执行结果如图:
在这里插入图片描述

最后一行为非匹配行,来源于左表列相应字段为空

内连接是指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。
而外连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值