LEFT JOIN、RIGHT JOIN 和 INNER JOIN 的区别

作者:c4t2024.01.22 05:35浏览量:9

简介:LEFT JOIN、RIGHT JOIN 和 INNER JOIN 是 SQL 中用于连接两个或多个表的常用操作。本文将详细解释它们之间的区别以及如何在实际应用中使用它们。

千帆应用开发平台“智能体Pro”全新上线 限时免费体验

面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用

立即体验

在 SQL 中,JOIN 操作用于将来自两个或多个表的数据组合在一起。根据连接条件和返回的列,JOIN 操作可以分为多种类型。其中,LEFT JOIN(左连接)、RIGHT JOIN(右连接)和 INNER JOIN(内连接)是最常用的三种。

  1. 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 |
  2. 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 |
  3. 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 |
article bottom image

相关文章推荐

发表评论