Skip to content

6.2 — LEFT JOIN 实战

你将学习

  • 如何使用 LEFT JOIN 包含一个表中的所有行,即使另一个表中没有匹配项
  • 与 Excel 中处理缺失值的 VLOOKUP 比较
  • 实际应用示例

示例表

表 sales:

ProductIDAmount
101120
10280
10350

表 products:

ProductIDProductName
101Apples
102Oranges
104Bananas

为什么使用 LEFT JOIN?

在 Excel 中,如果 VLOOKUP 找不到匹配项,您会得到 #N/A。在 SQL 中,LEFT JOIN 保留左表的所有行,并为缺失的匹配项填充 NULL

示例:显示所有销售记录,即使产品信息缺失

sql
SELECT s.ProductID, p.ProductName, s.Amount
FROM sales s
LEFT JOIN products p
  ON s.ProductID = p.ProductID;
  • 显示所有销售记录,即使 products 表中没有匹配的产品
  • 缺失的产品名称将显示为 NULL

筛选缺失匹配项

您可以使用 WHERE 查找没有匹配项的行:

sql
SELECT s.ProductID, s.Amount
FROM sales s
LEFT JOIN products p
  ON s.ProductID = p.ProductID
WHERE p.ProductID IS NULL;
  • 显示在 products 表中没有匹配产品的销售记录

关键要点

  • LEFT JOIN 保留第一个(左侧)表的所有行
  • 用于查找缺失数据或保留左表中不匹配的行

下一步

接下来,您将学习如何连接两个以上的表进行高级分析