LEFT JOIN、RIGHT JOIN 和 INNER JOIN 的区别
2024.01.22 05:35浏览量:9简介:LEFT JOIN、RIGHT JOIN 和 INNER JOIN 是 SQL 中用于连接两个或多个表的常用操作。本文将详细解释它们之间的区别以及如何在实际应用中使用它们。
千帆应用开发平台“智能体Pro”全新上线 限时免费体验
面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用
立即体验
在 SQL 中,JOIN 操作用于将来自两个或多个表的数据组合在一起。根据连接条件和返回的列,JOIN 操作可以分为多种类型。其中,LEFT JOIN(左连接)、RIGHT JOIN(右连接)和 INNER JOIN(内连接)是最常用的三种。
- LEFT JOIN (左连接)
LEFT JOIN 返回包括左表中的所有记录和右表中联结字段相等的记录。换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为:A.aID = B.bID),B 表记录不足的地方均为 NULL。
例如:
表 A:
| aID | aName |
|——-|———|
| 1 | A |
| 2 | B |
| 3 | C |
表 B:
| bID | bName |
|——-|———|
| 2 | B |
| 3 | C |
| 4 | D |
LEFT JOIN A ON A.aID = B.bID 结果:
| aID | aName | bID | bName |
|——-|———|——-|———|
| 1 | A | NULL| NULL |
| 2 | B | 2 | B |
| 3 | C | 3 | C |
| NULL| NULL | 4 | D | - RIGHT JOIN (右连接)
RIGHT JOIN 返回包括右表中的所有记录和左表中联结字段相等的记录。根据右表(B)查询,会查询B表中所有数据,即使B中和A没有关联的数据也会被列出。B 表记录不足的地方均为 NULL。
使用上述例子:
RIGHT JOIN A ON A.aID = B.bID 结果:
| bID | bName | aID | aName |
|——-|———|——-|———|
| 2 | B | 2 | B |
| 3 | C | 3 | C |
| 4 | D | NULL| NULL |
| NULL| NULL | 1 | A | - INNER JOIN (内连接)
INNER JOIN 只返回两个表中联结字段相等的行。换句话说,INNER JOIN 根据两个表中联结字段的交集进行查询,两表中无关的数据都会被筛除。
使用上述例子:
INNER JOIN A ON A.aID = B.bID 结果:
| aID | aName | bID | bName |
|——-|———|——-|———|
| 2 | B | 2 | B |
| 3 | C | 3 | C |

发表评论
登录后可评论,请前往 登录 或 注册