mysql 相关子查询
相关子查询
相关子查询的执行依赖于外部查询。多数情况下是子查询的WHERE子句中引用了外部查询的表。
例1:
SELECT
empno,ename,sal,deptno,(SELECT AVG(sal) FROM t_emp WHERE deptno = a.deptno) AS avgSal
FROM
t_emp AS a
WHERE
sal > (SELECT AVG(sal) FROM t_emp WHERE deptno = a.deptno)
例2:
SELECT
a.id,a.name,a.price,
(SELECT b.name FROM t_cat AS b WHERE b.id = a.cat_id) AS catName
FROM
t_goods AS a
执行过程:
(1)从外层查询中取出一个元组(行),将元组相关列的值传给内层查询。
(2)执行内层查询,得到子查询操作的值。
(3)外查询根据子查询返回的结果或结果集得到满足条件的行。
(4)然后外层查询取出下一个元组重复做步骤1-3,直到外层的元组全部处理完毕。
posted on 2022-10-10 14:45 hzk-shzdx-university 阅读(69) 评论(0) 编辑 收藏 举报