相关子查询和非相关子查询概念
主查询:包含其它子查询的查询称为主查询。(又称外部查询)
子查询:嵌套在其它查询中的查询语句。(又称为内部查询)
子查询分为两类:
1. 相关子查询:在主查询中,每查询一条记录,需要重新做一次子查询,这种称为相关子查询。
2. 非相关子查询:在主查询中,子查询只需要执行一次,子查询结果不再变化,供主查询使用,
这种查询方式称为非相关子查询。
--非相关子查询 SELECT EMPNO, LASTNAME FROM EMPLOYEE WHERE WORKDEPT = 'A00' AND SALARY > (SELECT AVG(SALARY) FROM EMPLOYEE WHERE WORKDEPT = 'A00') --相关子查询 SELECT E1.EMPNO, E1.LASTNAME, E1.WORKDEPT FROM EMPLOYEE E1 WHERE SALARY > (SELECT AVG(SALARY) FROM EMPLOYEE E2 WHERE E2.WORKDEPT = E1.WORKDEPT) ORDER BY E1.WORKDEPT
注:使用相关子查询比较多的就是使用exists等关键字。