本文作者:kris

SQL 四种连接-左外连接、右外连接、内连接、全连接详解-sql左外连接和右连接的区别

kris 2025-01-29 22:30:04 15
SQL 四种连接-左外连接、右外连接、内连接、全连接详解-sql左外连接和右连接的区别摘要: sql左外连接和右外连接的区别?在 SQL 中,左外连接(Left Outer Join)和右外连接(Right Outer Join)是两种不同的连接方式,用于通过共同的列将两个...

sql左外连接和右外连接的区别?

在 SQL 中,左外连接(Left Outer Join)和右外连接(Right Outer Join)是两种不同的连接方式,用于通过共同的列将两个或多个表连接起来。

左外连接(Left Outer Join):

- 左外连接返回左边表中的所有记录,以及符合连接条件的右边表中的匹配记录。

- 如果右边表中没有匹配的记录,则对应的列值将为 NULL。

- 左外连接语法:SELECT 列名 FROM 左表名 LEFT JOIN 右表名 ON 连接条件。

右外连接(Right Outer Join):

- 右外连接返回右边表中的所有记录,以及符合连接条件的左边表中的匹配记录。

- 如果左边表中没有匹配的记录,则对应的列值将为 NULL。

- 右外连接语法:SELECT 列名 FROM 左表名 RIGHT JOIN 右表名 ON 连接条件。

区别:

- 左外连接按照左表为主,返回左表中的所有记录,只包括符合连接条件的右表记录。

- 右外连接按照右表为主,返回右表中的所有记录,只包括符合连接条件的左表记录。

- 换句话说,左外连接保留左表的所有记录,右外连接保留右表的所有记录。

SQL 四种连接-左外连接、右外连接、内连接、全连接详解-sql左外连接和右连接的区别

图片来源:网络

- 如果使用外连接,其中一个表中的记录没有匹配项,则返回的结果中对应的列值为 NULL。

需要注意的是,将左外连接和右外连接进行互转(将左表和右表位置互换),可以得到相同的结果,只是输出结果的顺序和表的顺序会有所不同。

要区别在于连接操作时,保留哪些表中的数据。

1. 左外连接(LEFT JOIN):

左外连接以左侧表为主表,并保留左侧表中所有满足连接条件的行。如果左侧表中的一个行在右侧表中没有匹配的行,那么结果集中的该行将显示为 NULL。

例如,假设有两个表:students 和 courses。students 表有如下数据

id

courses 表有如下数据:

id | course_

1 | Math

3 | English

执行以下左外连接查询:

SELECT students.id, students.name, courses.course_name

FROM students

LEFT JOIN courses

ON students.id = courses.id;

查询结果将显示:

id | name | cours

1 | Alice | Math

2 | Bob | NULL

可以看到,Alice 的 id 为 1 的行在 courses 表中有匹配的行,因此 Math 被显示。而 Bob 的 id 为 2 的行在 courses 表中没有匹配的行,因此显示为 NULL。

1. 右外连接(RIGHT JOIN):

右外连接以右侧表为主表,并保留右侧表中所有满足连接条件的行。如果右侧表中的一个行在左侧表中没有匹配的行,那么结果集中的该行将显示为 NULL。

假设我们用 students 和 courses 表进行右外连接:

SELECT students.id, students.name, courses.course_name

FROM students

RIGHT JOIN

文章版权及转载声明

作者:kris本文地址:https://www.damoyx.com/p/28678.html发布于 2025-01-29 22:30:04
文章转载或复制请以超链接形式并注明出处大漠游侠网

阅读
分享