hzk20220818

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  阅读(51)  评论(0编辑  收藏  举报

导航