outer join的意思|示意

美 / ˈautə dʒɔin / 英 / ˈaʊtɚ dʒɔɪn /

[计] 外联结


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 外部连接