整理后的文档,关于select及where后面的子查询可查看这个博主的文章
1、嵌套在from中的子查询
这个地方的子查询就相当于一个表,临时表,即表T。
也就是说,外面的select,其查询的内容就是括号内的子查询返回的数据集
写法如下:
SELECT * FROM (SELECT ROW1,ROW2 FROM TABLE1) T
2、查询的分类
2、1相关子查询
子查询的条件与外表相关联。
执行依赖于外部查询的数据。
(就是table1在该select外面,而select里面table1.xx=table2.xx)
外部查询返回一行 ,子查询就执行一次。(对于该select,里面的子select会重复很多次执行)
2、2非相关子查询
独立于外部查询的子查询。
子查询总共执行一次,执行完毕后后将值传递给外部查询。
需要注意的是相关子查询主查询执行一回,子查询就执行一回,十分耗费时间,尤其是当数据多的时候。