多表查询 外连接查询
多表查询-外连接查询
简介
多表查询中的外连接查询是一种扩展了内连接查询的查询方式。
外连接查询在多表查询时返回满足连接条件的所有行,以及左表中未找到匹配行的右表的所有行(左外连接),或右表中未找到匹配行的左表的所有行(右外连接)。外连接通常用于查找相关联的数据,即使在某些表中没有匹配的行。
需要注意的是,外连接查询分为左外连接和右外连接两种类型,其中左外连接也称为左连接,右外连接也称为右连接。
外连接
- 外连接查询:查询多个表中相关联的行,有时候需要包含没有关联的行中数据,即返回查询结果集合中不仅包含符合连接条件的行,还包括左表(左连接)、右表(右连接)中的所有数据行。
- 左外连接 , 使用
LEFT OUTER JOIN
,OUTER
可以省略 - 右外连接 , 使用
RIGHT OUTER JOIN
,OUTER
可以省略
外连接(OUTER JOIN)是一种多表查询,它返回两个表中满足连接条件的所有行,以及左表中未找到匹配行的右表的所有行(左外连接),或右表中未找到匹配行的左表的所有行(右外连接)。
左连接
- 左连接:以左表为基准匹配右表的数据,右表中没有的项,显示为空
- 语法:
SELECT [字段] FROM [左表] LEFT JOIN [右表] ON [条件]
- 例子:公司新成立人力资源部,还未招聘员工,请使用左连接查询方式查询出公司所有部门员工的员工号,姓名,性别以及他们所在的部门名称和城市
#向部门表中插入人力资源部
INSERT INTO dept VALUES(4,'人力资源部','甄嬛','北京');
#查询出需要的数据
SELECT emp_id,ename,gender,dept_name,dept_location
FROM dept LEFT JOIN emp_part ON dept.id=emp_part.dept_id
右连接
- 右连接:以右表为基准匹配左表的数据,左表中没有的项,显示为空
- 语法:
SELECT [字段] FROM [左表] RIGHT JOIN [右表] ON [条件]
- 使用右连接的方式查询出所有员工信息以及他们所在的部门名称和城市
总结
- 内连接: inner join
- 左连接: left join
- 右连接: right join
- 内连接和左连接使用居多