1、概念
在一个select语句中,嵌入另外一个select语句,那么被嵌入的select语句称之为子查询,外部select语句成为主查询
SELECT * FROM t1 WHERE column1 = ( SELECT column1 FROM t2 );
子查询外部的语句可以是INSERT / UPDATE / DELETE / SELECT 的任何一个。
根据子查询结果不同,分为:
A、标量子查询(子查询结果为单个值)
B、列子查询(子查询结果为一列)
C、行子查询(子查询结果为一行)
D、表子查询(子查询结果为多行多列)
根据子查询位置,分为:
A、WHERE之后
B、FROM之后
C、SELECT之后
2、标量子查询
子查询返回的结果是单个值(数字、字符串、日期等),最简单的形式,这种子查询称为标量子查询。
常用的操作符:= <> > >= < <=
3、列子查询
子查询返回的结果是一列(可以是多行),这种子查询称为列子查询。
常用的操作符:IN 、NOT IN 、 ANY 、SOME 、 ALL
4、行子查询
子查询返回的结果是一行(可以是多列),这种子查询称为行子查询。
常用的操作符:= 、<> 、IN 、NOT IN
5、表子查询
子查询返回的结果是多行多列,这种子查询称为表子查询。
常用的操作符:IN