SQL Server子查询定义
当一个查询是另外一个查询的条件时,称之为子查询。子查询可以按2种方式分类。按期望值数量分为:标量子查询和多值子查询。按子查询对外部查询的依赖性分为:独立子查询和相关子查询。
下图是我用思维导出软件做出的子查询分类图
标量子查询可以出现在查询中希望产生标量值的任何地方,而多值子查询可以出现在查询中希望多值集合的任何地方。
标量子查询返回的值是单个或者不返回值(返回NULL),标量子查询返回多个值,就将产生运行时错误。
什么是独立子查询
独立子查询是独立于外部查询而运行的子查询,相比于相关子查询,独立子查询更便于调试。通俗一点讲就是子查询和外层查询不存在任何联系,是独立于外层查询的。
下面来看个独立子查询的例子
什么是相关子查询
相关子查询是引用了外部查询列的子查询。通俗一点讲就是子查询里面的条件依赖于外层查询的数据。
下面来看个相关子查询的例子
通过例子,我想应该能很好的理解什么是独立子查询,什么是相关子查询了吧?