子查詢中的 e.deptno如果替換成 emp.deptno得到的結果為什么不一樣?
1)select empno,ename,sal, (select avg(sal) from emp where deptno=e.deptno) avgsal
? ?from emp e
? ?where sal > (select avg(sal) from emp where deptno=e.deptno)
2)select empno,ename,sal, (select avg(sal) from emp where deptno=emp.deptno) avgsal
? ?from emp e
? ?where sal > (select avg(sal) from emp where deptno=emp.deptno)
2020-11-30
from emp e
? ?where sal > (select avg(sal) from emp where deptno=emp.deptno)
因為 e 表是from emp e 這個表??emp.deptno? select avg(sal) from emp?是指這個表
2020-02-21
主查詢和子查詢用的同一張表,子查詢語句條件中的deptno=emp.deptno 相當于笛卡爾積了。如果子查詢和主查尋每張表都有別名,就不存在這種問題了。
2019-02-11
就近原則,如果子查詢內有符合 ‘emp’ 的 表/集合,就采用子查詢內的,所以第二條語句的emp.deptno用的是子查詢內的而不是子查詢外的。