SQL 面试题 目录

SQL 中左外连接 (LEFT OUTER JOIN) 的用法是什么?

推荐答案

-- -------------------- ---- -------
------ 
    ---------------------- 
    --------------- 
    ---------------------------
---- 
    ---------
---- ----- ---- 
    ----------- 
-- 
    ----------------------- - --------------------------

本题详细解读

什么是左外连接 (LEFT OUTER JOIN)?

左外连接(LEFT OUTER JOIN)是 SQL 中的一种连接方式,它返回左表中的所有记录,即使右表中没有匹配的记录。如果右表中没有匹配的记录,则结果集中右表的列将显示为 NULL。

语法结构

  • left_table:左表,即主表。
  • right_table:右表,即从表。
  • ON:连接条件,指定左表和右表之间的关联关系。

示例解析

假设我们有两个表:employeesdepartments

  • employees 表结构:

    • employee_id (员工ID)
    • name (员工姓名)
    • department_id (部门ID)
  • departments 表结构:

    • department_id (部门ID)
    • department_name (部门名称)

我们想要查询所有员工及其所属部门的名称,即使某些员工没有分配到任何部门。

-- -------------------- ---- -------
------ 
    ---------------------- 
    --------------- 
    ---------------------------
---- 
    ---------
---- ----- ---- 
    ----------- 
-- 
    ----------------------- - --------------------------

结果分析

  • 如果 employees 表中的某条记录的 department_iddepartments 表中没有匹配的记录,那么 departments.department_name 将显示为 NULL。
  • 左外连接确保 employees 表中的所有记录都会被返回,无论是否有匹配的 departments 记录。

使用场景

  • 当你需要查询主表中的所有记录,并且希望同时获取从表中的相关数据时,即使从表中没有匹配的记录。
  • 常用于需要显示所有数据,即使某些数据缺失的场景。

注意事项

  • 左外连接可能会导致结果集中出现 NULL 值,因此在处理结果时需要特别注意 NULL 值的处理。
  • 左外连接与内连接(INNER JOIN)不同,内连接只返回两个表中都有匹配记录的行。
纠错
反馈