NestedSubquery.md

嵌套子查询

目录:

嵌套子查询

在通常的子查询中,子查询是以嵌套的方式写在父查询的WHERE、HAVING、FROM子句中,所以被 称为嵌套子查询。

嵌套子查询的执行过程:

SELECT ename,sal
FROM emp e,(SELECT deptno,AVG(sal) sa
            FROM emp
            GROUP BY deptno) d
WHERE e.deptno=d.deptno
AND e.sal>d.sa

相关子查询

父查询中的行每被处理一次,子查询就执行一次。

SELECT ename,sal
FROM emp e
WHERE sal>(SELECT AVG(sal)
           FROM emp
           WHERE deptno=e.deptno)

查询过程:

EXISTS和NOT EXISTS

SELECT ename
FROM emp e
WHERE EXISTS (SELECT '1'
             FROM emp
             WHERE mgr=e.empno)

注:

SELECT ename
FROM emp e
WHERE NOT EXISTS (SELECT '1'
             FROM emp
             WHERE mgr=e.empno)

注: