outer join的意思|示意
[计] 外联结
outer join的用法详解
'
Outer Join(外连接)是SQL中连接(Join)操作的一种,用于获取两个表之间的所有数据,包括匹配和不匹配的数据。在常规的Inner Join(内连接)中,只会返回两个表中的匹配数据,而Outer Join则会保留不匹配的数据,并用空值填充匹配不到的列。
Outer Join有三种类型:Left Outer Join, Right Outer Join和Full Outer Join。
1. Left Outer Join(左外连接)
左外连接返回左表中所有的数据,以及与右表匹配的数据。如果右表中没有匹配到的行,则用空值填充。
语法:
SELECT column(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column = table2.column;
示例:
LEFT OUTER JOIN示例图
表1:Employees
员工编号 姓名 部门编号
100 Alice 1
101 Bob 2
102 Cindy 1
103 David 3
104 Ellen 2
表2:Departments
部门编号 部门名称
1 Sales
2 Marketing
3 HR
4 IT
查询语句:
SELECT Employees.员工编号, Employees.姓名, Departments.部门名称
FROM Employees
LEFT OUTER JOIN Departments
ON Employees.部门编号 = Departments.部门编号;
查询结果:
员工编号 姓名 部门名称
100 Alice Sales
101 Bob Marketing
102 Cindy Sales
103 David HR
104 Ellen Marketing
105 Frank NULL
注意:查询结果中出现了部门编号为5的员工Frank,虽然在Employees表中有,但在Departments表中没有匹配行,所以部门名称显示为NULL。
2. Right Outer Join(右外连接)
右外连接返回右表中所有的数据,以及与左表匹配的数据。如果左表中没有匹配到的行,则用空值填充。
语法:
SELECT column(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column = table2.column;
示例:
RIGHT OUTER JOIN示例图
查询语句:
SELECT Employees.员工编号, Employees.姓名, Departments.部门名称
FROM Employees
RIGHT OUTER JOIN Departments
ON Employees.部门编号 = Departments.部门编号;
查询结果:
员工编号 姓名 部门名称
100 Alice Sales
102 Cindy Sales
101 Bob Marketing
104 Ellen Marketing
103 David HR
NULL NULL IT
NULL NULL Finance
注意:查询结果中出现了部门编号为4和5的部门,虽然在Departments表中没有匹配行,但在Employees表中有员工所属该部门,所以员工姓名显示为NULL。
3. Full Outer Join(完全外连接)
完全外连接(也称全外连接)返回左右表的所有数据,匹配的数据显示在一起,不匹配的数据用空值填充。
语法:
SELECT column(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column = table2.column
WHERE condition;
示例:
FULL OUTER JOIN示例图
查询语句:
SELECT Employees.员工编号, Employees.姓名, Departments.部门名称
FROM Employees
FULL OUTER JOIN Departments
ON Employees.部门编号 = Departments.部门编号;
查询结果:
员工编号 姓名 部门名称
100 Alice Sales
101 Bob Marketing
102 Cindy Sales
103 David HR
104 Ellen Marketing
105 Frank NULL
NULL NULL IT
NULL NULL Finance
注意:查询结果中出现了部门编号为4和5的部门,虽然在Departments表中没有匹配行,但在Employees表中有员工所属该部门,所以员工姓名显示为NULL。同时,查询结果中也出现了员工编号为105的员工Frank,虽然在Departments表中没有部门信息,但在Employees表中有该员工信息,所以部门名称显示为NULL。
以上就是Outer Join的用法讲解,希望对你有所帮助。
'outer join相关短语
1、 Left Outer Join 左外连接,左外部联接,左向外联接,左联接
2、 right outer join 右外连接,右外部联接,右向外联接,右外联接
3、 full outer join 全外连接,完整外部联接,全连接,完全外连接
4、 Outer Join Fetching 外连接抓取
5、 outer join fetch 外连接抓取
6、 partitioned outer join 分区的外连接
7、 left outer join fetch 迫切左外连接
8、 SQL OUTER JOIN 外部连接