# MySQL教程 - 12 多表查询

继续讲解多表查询...

# 12.8 子查询

子查询 也叫 嵌套查询,它指的是一个 SQL 查询语句嵌套在另一个查询语句中,用于为外层查询提供数据。通常用来处理复杂查询,特别是涉及多个表或需要多步筛选的场景。

语法:

SELECT 字段列表
FROM 表名1
WHERE column1 [操作符] (
    SELECT column1
    FROM 表名2
    WHERE condition
);
1
2
3
4
5
6
7
  • 上面的语句分为外部查询和子查询,上面外部的查询是 SELECT,但其实可以是 INSERT、DELETE 或 SELECT 。

  • 上面的语法中,子查询在 WHERE 子句中,其实子查询可以出现在 SELECTFROMWHERE 子句中。

  • 子查询可以单独执行,并为外层查询提供中间结果。


根据使用场景和嵌套位置,子查询分为以下几种类型:

  • 标量子查询(子查询结果为单行单列,就是单个值)
  • 列子查询(子查询结果为单列,可为多行)
  • 行子查询(子查询结果为单行,可为多列)
  • 表子查询(子查询结果为多行多列)

下面分别介绍一下。

# 1 标量子查询

标量子查询,子查询结果为单行单列的单个值。常用的操作符有: =><>=<=!=

举个栗子:

查询技术部的所有员工信息,在前面已经使用内连接查询实现过,下面使用子查询实现。

内容未完......