掌握 SQL 连接:INNER JOIN 和 OUTER JOIN 解释
SQL 连接对于合并多个数据库表中的数据至关重要。 本指南重点介绍两种关键的连接类型:INNER JOIN
和 OUTER JOIN
,强调它们的差异和应用。
INNER JOIN
:
INNER JOIN
根据指定的连接条件仅返回两个表中的匹配行。 它有效地过滤掉两个表中未找到匹配项的任何行。 结果集仅包含两个连接表中存在的数据。
OUTER JOIN
:
与 INNER JOIN
不同,OUTER JOIN
返回至少一个表中的所有行。 这包括在另一个表中具有匹配数据的行,最重要的是,在另一个表中没有匹配的行。
OUTER JOIN
变体:
存在多种类型的 OUTER JOIN
,每种都有特定的用途:
LEFT OUTER JOIN
(或 LEFT JOIN
): 返回左表(LEFT JOIN
之前指定的表)中的所有行。如果右表存在匹配,则包含相应的数据;否则,NULL
值用于右表列。
RIGHT OUTER JOIN
(或 RIGHT JOIN
): 镜像 LEFT JOIN
,但返回 右 表中的所有行,并包含左侧不匹配行的 NULL
值表。
FULL OUTER JOIN
(或 FULL JOIN
): 组合 LEFT JOIN
和 RIGHT JOIN
。它返回两个表中的所有行。 NULL
值填充任一表中缺少匹配项的位置。
示例:
让我们考虑表“A”和“B”:
Table A | Table B |
---|---|
1 | 3 |
2 | 4 |
3 | 5 |
4 | 6 |
INNER JOIN
(A INNER JOIN
B ON
A.a = B.b):
Table A | Table B |
---|---|
3 | 3 |
4 | 4 |
LEFT OUTER JOIN
(A LEFT JOIN
B ON
A.a = B.b):
Table A | Table B |
---|---|
1 | NULL |
2 | NULL |
3 | 3 |
4 | 4 |
RIGHT OUTER JOIN
(aRIGHT JOIN
bON
a.a = b.b):
Table A | Table B |
---|---|
3 | 3 |
4 | 4 |
NULL | 5 |
NULL | 6 |
FULL OUTER JOIN
(aFULL JOIN
bON
a.a = b.b):
Table A | Table B |
---|---|
1 | NULL |
2 | NULL |
3 | 3 |
4 | 4 |
NULL | 5 |
NULL | 6 |
通过了解这些联接类型,您可以有效地查询和操纵多个表的数据,从数据库中获得有价值的见解。
以上是在SQL中内部联接和外部连接之间有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!