码迷,mamicode.com
首页 > 其他好文 > 详细

correlated subquery and non-correlated subquery

时间:2015-07-27 11:04:05      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:

子查询:嵌套在其他查询中的查询称之。
子查询又称内部,而包含子查询的语句称之外部查询(又称主查询)。
所有的子查询可以分为两类,即相关子查询和非相关子查询
1>非相关子查询是独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值传递给外部查询。
2>相关子查询的执行依赖于外部查询的数据,外部查询执行一行,子查询就执行一次。
故非相关子查询比相关子查询效率高
 
查询工资大于所有员工平均工资的员工姓名:
--非相关子查询
SELECT department_id, FIRST_NAME
FROM EMP
WHERE DEPARTMENT_ID = 110
AND SALARY > (SELECT AVG(SALARY)
FROM EMP
WHERE DEPARTMENT_ID = 110); –子查询是一个独立的查询
 
查询工资大于本部门的平均工资的员工姓名:
--相关子查询
SELECT E1.DEPARTMENT_ID , E1.FIRST_NAME
FROM EMP E1
WHERE SALARY > (SELECT AVG(SALARY)
FROM EMP E2
WHERE E2.DEPARTMENT_ID = E1.DEPARTMENT_ID) –依赖于外部查询结果
ORDER BY E1.DEPARTMENT_ID;

correlated subquery and non-correlated subquery

标签:

原文地址:http://www.cnblogs.com/rusking/p/4679457.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!