SQL 面试题 目录

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

推荐答案

本题详细解读

什么是全外连接 (FULL OUTER JOIN)?

全外连接(FULL OUTER JOIN)是 SQL 中的一种连接方式,它返回两个表中所有匹配和不匹配的行。如果某一行在其中一个表中没有匹配的行,结果集中仍然会包含该行,并且缺失的列会用 NULL 填充。

语法结构

  • SELECT: 选择要查询的列。
  • FROM table1: 指定第一个表。
  • FULL OUTER JOIN table2: 指定第二个表,并与第一个表进行全外连接。
  • ON table1.column_name = table2.column_name: 指定连接条件,即两个表中用于匹配的列。

示例

假设有两个表 EmployeesDepartments

Employees 表:

EmployeeID Name DepartmentID
1 Alice 101
2 Bob 102
3 Carol NULL

Departments 表:

DepartmentID DepartmentName
101 HR
102 IT
103 Finance

使用全外连接查询:

结果:

EmployeeID Name DepartmentName
1 Alice HR
2 Bob IT
3 Carol NULL
NULL NULL Finance

结果解释

  • AliceBobEmployees 表和 Departments 表中都有匹配的行,因此它们的 DepartmentName 被正确显示。
  • CarolEmployees 表中没有匹配的 DepartmentID,因此 DepartmentNameNULL
  • Finance 部门在 Departments 表中没有匹配的 EmployeeID,因此 EmployeeIDNameNULL

注意事项

  • 全外连接在某些数据库系统中可能不被支持(如 MySQL),可以使用 LEFT JOINRIGHT JOIN 的联合来模拟全外连接。
  • 全外连接的结果集可能非常大,因为它包含了两个表中所有可能的行组合。
纠错
反馈