MySQL 表连接详解
本章将承接多表查询的内容,主要讲解内连接与外连接(左外连接 + 右外连接)。内连接的本质是在多表查询中使用笛卡尔积配合 WHERE 语句筛选出有效数据,这相当于提供了一种规范化的多表连接方法。本文将补充常用的左外连接和右外连接。
表的内连接与外连接
在笛卡尔积中,内连接与其逻辑相似,都需要通过条件判断两表中的相同部分以过滤无效数据。
1. 内连接 (INNER JOIN)
内连接实际上就是利用 WHERE 子句对两张表形成的笛卡尔积进行筛选。前面学习的查询大多属于内连接,也是开发过程中使用最多的连接查询方式。
语法:
SELECT 字段 FROM 表 1 INNER JOIN 表 2 ON 连接条件 AND 其他条件;
实操示例:显示 SMITH 的名字和部门名称
所需的两张表结构如下:

使用标准的内连接方法(本质等价于之前的写法,但逻辑更清晰):

后续也可以使用 WHERE 子句实现相同效果:

使用之前直接合并两张表笛卡尔积的方法 + WHERE 过滤:

2. 外连接 (OUTER JOIN)
2.1 左外连接 (LEFT JOIN)
如果联合查询时,左侧的表完全显示,则称为左外连接。
语法:
SELECT 字段名 FROM 表名 1 表名 连接条件;





