子查询
内部查询首先执行,外部查询依赖内部查询输出。
相关子查询
先执行外层查询,内层查询依赖外层查询结果。
相关子查询是子查询部分引用来自外部查询的值的地方。
SELECT emp1.emp_id, emp1.last_name, emp1.job_id, emp1.department_id from employee emp1 WHERE EXISTS (SELECT ‘X’ FROM employee emp2 WHERE emp2.manager_id = emp1.emp_ID);
由于在子查询中引用了 emp1.emp_ID,因此是相关子查询。
子查询为外部查询处理的每一行计算一次。
SELECT e1.employee_number, e1.name FROM employee e1 WHERE e1.salary > (SELECT avg(e2.salary) FROM e2.employee);
不是相关子查询,因为子查询不引用查询外部的值。
日期:2020-06-02 22:17:37 来源:oir作者:oir