【mysql体系结构】子查询
1、按返回的结果集区分子查询
- 标量子查询
只返回一个单一值的子查询称为标量子查询
- 行子查询
返回一条记录的子查询,不过这条记录需要包含多个列。(如果只包含一个列,那就是标量子查询)
- 列子查询
就是查询出一个列的数据,不过这个列需要包含多条记录。(如果只包含一条记录,就是标量子查询)
- 表子查询
就是子查询的结果既包含很多条记录,又包含很多个列。
2、按与外层查询的关系来区分子查询
- 不相关子查询
如果子查询可以单独运行出结果,而不依赖于外层的查询的值,我们就可以把这个子查询称为不相干子查询。
- 相关子查询
如果子查询的执行需要依赖外层查询的值,我们就可以把这个子查询称为相关子查询。
3、子查询在布尔表达式中的使用
- 使用=、>、<、<=、>=、<>、!=、<=>作为布尔表达式的操作符
- [NOT]IN/ANY/SOME/ALL子查询
- EXISTS子查询