子查询

分类

按结果分类

单行单列子查询(标量子查询)

指返回的结果为单行单了,也称为标量子查询,可用于=,!=, >,<等条件语句中。

多行单列子查询

指返回的结果包含单个列,但包含了多行。可用于 in,not in, exists, not exists,=、!=、<> all/any 条件语句中。

多行多列子查询

指返回的结果包含多行多了,可用于 (xxx,xxx, xxx) in/not in subquery 等条件语句。

按是否与包含语句独立分类

非关联子查询

未引用包含查询中的列。可以先执行子查询,再执行包含查询

关联子查询

引用了包含查询中的列。为包含语句的每个候选行执行子查询,再根据子查询的结果过滤查询结果。

杂记

使用group by 子语句时,出现在select 目标属性中的属性,如果没有出现在group by字句中,则必须为聚集函数中。
having字句中的属性必须为聚集函数或则出现在group by字句中的属性

你可能感兴趣的:(子查询)