Module 06 · Bonus Module: Advanced SQL for Data Engineers
Inner Join内联接 (Inner Join)
欢迎观看本视频,了解内联接 (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 (借阅) 表中的数据。
- FROM 子句:指定联接
- 在
FROM子句中,您将借阅者表和借阅表之间的联接指定为BORROWER INNER JOIN LOAN。 - 您可以将
BORROWER表指定为别名 B,将LOAN表指定为别名 L。 - 左表 (Left Table):
JOIN子句左侧指定的表(在本例中是BORROWER表)被称为左表。
- SELECT 子句:选择列
- 对于此联接,您从
BORROWER表中选择 Borrower ID、Last Name 和 Country,并从LOAN表中选择 Borrower ID 和 Loan Date。
- 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 列联接。
结论回顾
在本视频中,您学到了:
- 内联接只返回两个表中在通用列中具有匹配值的行。
- 该通用列通常是一个表的主键作为另一个表的外键。
- 不具有匹配值的联接表中的行不会出现在结果中。