sql之10 子查询
总结下自己对子查询的经验:
子查询:即一般语句中还存在select语句,这个select部分就是子查询。
相关子查询:子查询里包含有外部查询的某一列值
工作原理:外部查询一行,子查询就要查询一次。(因此不建议用子查询)
1、exists
当使用exists做where 子句时,使用格式为 where exists(子查询)
注意:当子查询有返回结果,则where为true,否则为false。
2、in
当使用in做where子句时,子查询只能返回一列或单值
3、子查询可以做为外部select的列
注意:此时子查询只能返回单值。
4、在where子句里使用子查询做表达式的一部分
注意:如果子查询返回不是单值,则需要使用all或any,此时格式为all/any(子查询),这部分要放到where语句的最后面
子查询注意点:
不能有order by,必须在括号内。