虽然 SQL 连接提供了组合数据集的强大机制,但内连接和外连接之间的细微差别可能很神秘。本文深入探讨了它们的独特特征,使您能够全面了解这些连接类型。
内连接,顾名思义,侧重于两个表 A 和 B 之间的共同点。它检索在连接条件中共享匹配值的行。想象一个维恩图,其中 A 和 B 代表圆圈:内部联接提供位于圆圈重叠部分内的数据。
与内部联接相反连接、外连接包括所涉及的表的并集。它们试图从至少一个表中检索所有行,而不管另一个表中是否有匹配的行。生成的数据集类似于维恩图的重叠和非重叠部分覆盖的整个区域。
进一步细化以下概念外连接,SQL提供了三种变体:
巩固您的理解,让我们考虑一个有两个表 A 和 B 的示例,每个表都有一个列:
A | B |
---|---|
1 | 3 |
2 | 4 |
3 | 5 |
4 | 6 |
内连接:
SELECT * FROM A INNER JOIN B ON A.A = B.B;
输出:
A | B |
---|---|
3 | 3 |
4 | 4 |
左外连接连接:
SELECT * FROM A LEFT OUTER JOIN B ON A.A = B.B;
输出:
A | B |
---|---|
1 | null |
2 | null |
3 | 3 |
4 | 4 |
右外连接:
SELECT * FROM A RIGHT OUTER JOIN B ON A.A = B.B;
输出:
A | B |
---|---|
3 | 3 |
4 | 4 |
null | 5 |
null | 6 |
>完整的外部联接:
SELECT * FROM A INNER JOIN B ON A.A = B.B;
> output:
A | B |
---|---|
1 | null |
2 | null |
3 | 3 |
4 | 4 |
null | 5 |
null | 6 |
以上是内部与外部连接在SQL中:有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!