# MySQL教程 - 12 多表查询
继续讲解多表查询...
# 12.8 子查询
子查询 也叫 嵌套查询,它指的是一个 SQL 查询语句嵌套在另一个查询语句中,用于为外层查询提供数据。通常用来处理复杂查询,特别是涉及多个表或需要多步筛选的场景。
语法:
SELECT 字段列表
FROM 表名1
WHERE column1 [操作符] (
SELECT column1
FROM 表名2
WHERE condition
);
1
2
3
4
5
6
7
2
3
4
5
6
7
上面的语句分为外部查询和子查询,上面外部的查询是 SELECT,但其实可以是 INSERT、DELETE 或 SELECT 。
上面的语法中,子查询在 WHERE 子句中,其实子查询可以出现在
SELECT
、FROM
或WHERE
子句中。子查询可以单独执行,并为外层查询提供中间结果。
根据使用场景和嵌套位置,子查询分为以下几种类型:
- 标量子查询(子查询结果为单行单列,就是单个值)
- 列子查询(子查询结果为单列,可为多行)
- 行子查询(子查询结果为单行,可为多列)
- 表子查询(子查询结果为多行多列)
下面分别介绍一下。
# 1 标量子查询
标量子查询,子查询结果为单行单列的单个值。常用的操作符有: =
、>
、<
、>=
、<=
、!=
。
举个栗子:
查询技术部
的所有员工信息,在前面已经使用内连接查询实现过,下面使用子查询实现。
内容未完......