![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e282d2ca1aab4acb12bb419a18952213.jpeg)
编写SQL查询时很多时候无法通过一次性查询就查出结果,这时可以编写一个查询嵌套在另一个查询语句内部的查询,它要么作为条件,要么作为数据源辅助主查询的查询就称为子查询
分类
MySQL 子查询可以按照查询结果的行列数不同分成:
1 标量子查询(单行单列)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/80f7d922c85fdee4efdb8931280b1b91.png)
2 行子查询(单行多列)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4dfab172a8ae9e6f694fed80aec3dcfd.png)
3 列子查询(单列多行)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7d03ac8e8537df6b66e83fcdcf7fe2eb.png)
4 表子查询(多行多列)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/024dff092223bb04a50433a2cd58b33c.png)
子查询的使用范围
1 SELECT 之后
只能使用标量子查询
2 FROM 之后
都支持
3 WHERE 和 HAVING 之后
可以使用 ‘标量子查询’、‘行子查询’ 和 ‘列子查询’
4 EXISTS 之后
都支持