简介
子查询是指一个查询语句嵌套在另一个查询语句内部的查询
在SELECT子句中先计算子查询,子查询结果作为外层另一个查询的过滤条件。查询可以基于一个表或者多个表。
子查询
带ANY、SOME关键字的子查询
ANY和SOME是同义词,表示满足其中任意一个条件,他们允许创建一个表达式对子查询的返回值列表进行比较,只要满足其中一个条件,就返回一个结果给外层查询的条件。
带ALL关键字的子查询
ALL与ANY和SOME不同,ALL需要同时满足所有内层查询的条件。
带EXISTS关键字的子查询
EXISTS关键字后面可以接任意子查询,系统对子查询进行判断,如果返回至少为一行,则返回true,此时外层查询进行查询;
如果没有返回任何行,那么返回false,此时外层查询不进行查询。NOT EXISTS则相反。
EXISTS与条件表达式结合
带IN关键字的子查询
IN关键字进行子查询时,内层查询只返回 一个数据列,这个数据列提供给外层查询进行比较。NOT IN 则相反。