ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

MySQL三 | 多表查询

2026/9/19 13:29:34 拓冰建站 浏览量
MySQL三 | 多表查询

目录

多表查询

内连接

隐式内连接

显示内连接

外连接

左外连接

右外连接

自连接

子查询


多表查询

笛卡尔积:集合A和集合B的所有组合情况 A * B

在多表查询时应消除无效的笛卡尔积

内连接

查询的是两张表交集的地方

隐式内连接

SELECT 字段列表 FROM 表1,表2 WHERE 条件...;

显示内连接

SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 连接条件 ...;

外连接

左外连接

SELECT 字段列表 FROM 表一 LEFT [OUTER] JOIN 表二 ON 条件...;

左外连接相当于查询表1(左表)的所有数据 包含表一和表二交集部分的数据

右外连接

SELECT 字段列表 FROM 表二 RIGHT [OUTER] JOIN 表二 ON 条件...;

右外连接可以转换为左外连接

自连接

必须起别名

SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件...;

自连接查询,可以是内连接查询,也可以是外连接查询

子查询

在sql语句中嵌套select语句,称为嵌套查询,又称为子查询

SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2);

子查询外部可以是INSERT/UPDATE/DELETE/SELECT中的任意一个

子查询类型功能
标量子查询子查询返回的结果是单个值(数字,字符串,日期等)
列子查询返回的结果是一列
行子查询子查询返回的结果为一行
表子查询返回的结果为多行多列
常用操作符功能
IN在指定的集合范围内多选一
NOT IN不在指定的范围内
ANY子查询返回列表中,有任意一个满足即可
SOME与ANY等同,使用SOME的地方都可以用ANY
ALL子查询返回列表的所有值都必须满足
<>不等于