Coursera 笔记

Module 06 · Bonus Module: Advanced SQL for Data Engineers

Inner Join内联接 (Inner Join)

Coursera ↗

欢迎观看本视频,了解内联接 (Inner Join)。

看完本视频后,您将能够:

  • 描述内联接。
  • 解释何时使用内联接。
  • 描述 INNER JOIN 语句的语法。

内联接的定义

联接操作 (Join) 根据表中某些列之间的关系,将两个或多个表中的行合并起来。表联接有两种类型:内联接和外联接。

  • 内联接是最常见的联接类型。
  • 它只显示两个表中在通用列中具有匹配值的行。
  • 这个通用列通常是一个表的主键 (Primary Key),它在第二个表中作为外键 (Foreign Key) 存在。

INNER JOIN 语句的语法

这是用于内联接的 SELECT 语句的语法:

SQL

SELECT Column_List
FROM Left_Table INNER JOIN Right_Table
ON Join_Predicate;

示例:借阅者和借阅日期

假设您想检索所有借书人的列表以及他们的借阅日期。您需要 BORROWER (借阅者) 表和 LOAN (借阅) 表中的数据。

  1. FROM 子句:指定联接
  • 在 FROM 子句中,您将借阅者表和借阅表之间的联接指定为 BORROWER INNER JOIN LOAN。
  • 您可以将 BORROWER 表指定为别名 B,将 LOAN 表指定为别名 L。
  • 左表 (Left Table):JOIN 子句左侧指定的表(在本例中是 BORROWER 表)被称为左表。
  1. SELECT 子句:选择列
  • 对于此联接,您从 BORROWER 表中选择 Borrower ID、Last Name 和 Country,并从 LOAN 表中选择 Borrower ID 和 Loan Date。
  1. ON 子句:指定联接谓词
  • 在 ON 子句中,您指定联接谓词,即联接条件。
  • 在本例中,条件是 BORROWER 表中的 Borrower ID 等于 LOAN 表中的 Borrower ID:
    ON B.Borrower_ID = L.Borrower_ID

🔑 使用别名 (Alias)

注意:在此联接中,每个列名都带有前缀字母 B 或 L。在 SQL 中,这被称为别名。使用别名比重写整个表名要容易得多。

结果集分析

  • 结果集只显示两个表中具有相同 Borrower ID 的行。
  • 只有 Borrower_ID 匹配的行才会被显示。
  • 不匹配 Borrower_ID 的行不会出现在结果中。
  • Borrower_Id、Lastname 和 Country 列取自 Borrower 表,并与 Loan 表中的 Borrower_Id 和 Loan_Date 列联接。

结论回顾

在本视频中,您学到了:

  • 内联接只返回两个表中在通用列中具有匹配值的行。
  • 该通用列通常是一个表的主键作为另一个表的外键。
  • 不具有匹配值的联接表中的行不会出现在结果中。