# P50 50. 基础-多表查询-小结

> 本页是学习笔记，不等同于视频逐字稿。原声字幕未取得（匿名接口字幕轨为空且需登录，未使用任何账号），也没有逐句讲解记录；讲义只按节与页码对应，切点未逐句确证。

> 以同版讲义的公开镜像核对章节与页码（镜像非官方出品）；非逐字稿，示例为原创补充。

## P50 50. 基础-多表查询-小结

- 原视频：https://www.bilibili.com/video/BV1Kr4y1i7ru/?p=50（p=50），时长 4:14
- 讲义：参照前节整理，无独立讲义正文；参照前节 5.1–5.7 多表查询（p69–88）

- 本集练习数据：practice/p50.sql（先执行，再对照小例）

### 一句话理解

多表查询的决策只有三步：先看关系定连接条件，再看要不要保留配不上的行，最后看要不要嵌套。

### 要点

- 关系决定外键位置：一对多外键在多的一方；多对多要中间表；一对一外键加 UNIQUE。
- 连接先问“要不要保留全部”：只留匹配用内连接；保留一侧用左/右外连接；同表两个身份用自连接。
- 结果怎么合：合并行用 UNION（去重）或 UNION ALL；拿内层结果当条件或当表，就按返回形状选标量 / 列 / 行 / 表子查询。

### 30 秒回忆

关系 → 外键位置；连接 → 内/外/自；合并 → UNION；嵌套 → 四类子查询；先判断“保留谁”。

关联课：P37 37. 基础-多表查询-多表关系介绍 · P39 39. 基础-多表查询-内连接 · P43 43. 基础-多表查询-子查询介绍

### 自测

1. 一条查询里怎么同时体现外连接和计数正确？
   - 答：以保留侧为左表 LEFT JOIN，计数用 COUNT(右表主键)。
2. 多对多为什么不能只加一个外键？
   - 答：两边都是多，外键放哪边都会重复；要用中间表拆成两个一对多。

### 材料与来源

- [平台视频页] BV1Kr4y1i7ru P50（平台标题） https://www.bilibili.com/video/BV1Kr4y1i7ru/?p=50
- [官方文档] MySQL 8.0 Reference Manual — JOIN Clause https://dev.mysql.com/doc/refman/8.0/en/join.html

证据说明：讲义无“小结”正文；本页参照前节 5.1–5.7 多表查询（p69–88）整理。原声字幕未取得（匿名接口字幕轨为空），讲师逐句讲解未核；本页不含 SQL 示例。
