钟二网络头像

钟二网络

探索SQL查询技巧、Linux系统运维以及Web开发前沿技术,提供一站式的学习体验

  • 文章92531
  • 阅读1081349
首页 SQL 正文内容

sql左关联、右关联

钟逸 SQL 2025-08-10 22:34:29 3

在 SQL 中,左关联和右关联是两种重要的联接类型,用于从多个表中组合数据。它们之间的主要区别在于连接表的方式以及对结果集的影响。

左关联

左关联以左表中的所有记录为基础,并与右表中匹配的记录进行关联。如果右表中没有匹配的记录,则左表中的记录仍然包含在结果集中,但右表中的字段值为空。换句话说,左关联优先考虑左表中的记录。

右关联

右关联以右表中的所有记录为基础,并与左表中匹配的记录进行关联。如果左表中没有匹配的记录,则右表中的记录仍然包含在结果集中,但左表中的字段值为空。右关联优先考虑右表中的记录。

示例

假设我们有以下两个表:

表 A:

| id | 名称 |

-------|-------|

| 1 | John |

| 2 | Mary |

表 B:

| id | 地址 |

-------|-------|

| 1 | Main St |

| 3 | Elm St |

如果我们执行以下左关联查询:

SELECT * FROM A LEFT JOIN B ON A.id = B.id;

结果将是:

| id | 名称 | 地址 |

-------|-------|-------|

| 1 | John | Main St |

| 2 | Mary | NULL |

正如您所见,左关联保留了表 A 中的所有记录,即使表 B 中没有匹配的记录。

如果我们执行以下右关联查询:

SELECT * FROM A RIGHT JOIN B ON A.id = B.id;

结果将是:

| id | 名称 | 地址 |

-------|-------|-------|

| 1 | John | Main St |

| NULL | NULL | Elm St |

右关联保留了表 B 中的所有记录,即使表 A 中没有匹配的记录。

选择左关联或右关联

选择左关联还是右关联取决于要优先考虑哪个表。如果您需要保留左表中的所有记录,无论右表中是否存在匹配项,则可以使用左关联。如果您需要保留右表中的所有记录,无论左表中是否存在匹配项,则可以使用右关联。

文章目录
    搜索