在子查詢中一般先執行子查詢,在執行住查詢,但是相關子查詢列外
相關子查詢就是把主查詢的值作為引數傳遞給子查詢
例子:找到員工表中薪水大於平均薪水員工
方法一:select empno,ename,sal,(select **g(sal) from emp where deptno=e.deptno) **gsal
from emp e
where sal>(select **g(sal) from emp where deptno=e.deptno)
即是子查詢中的deptno需要依賴主查詢表中員工所在的部門,需要把主查詢表中的e.deptno傳遞給子查詢===
方法二select e.empno ,e.ename e.sal, d. **gsal
from emp e,(select deptno,**g(sal) **gsal from emp group by deptno) d
where e.deptno =d.deptno and e.sal>d.**gsal;
相關子查詢比直接子查詢效能高
Oracle 相關子查詢
start 我們先來看兩個表的定義 使用者 create table employee userid number 9,0 not null,使用者id companyid number 9,0 公司id telno varchar2 12 使用者 alter table employee add ...
mysql 非相關子查詢 相關子查詢一
1 子查詢在查詢語句中可出現的位置 2 子查詢的分類 3 子查詢的優化的思路 3.1 做子查詢優化的原因 3.2 子查詢優化技術 3.3 子查詢展開 4 最常見的子查詢型別的優化 4.1 in型別 4.2 all any some型別 4.3 exists型別 5 例項 二 相關子查詢和非相關子查詢...
什麼是 相關子查詢 和 非相關子查詢
先執行主查詢,再針對主查詢返回的每一行資料執行子查詢,如果子查詢能夠返回行,則這條記錄就保留,否則就不保留。舉例1 相關子查詢查詢 查詢所有是領導的員工資訊 select from emp e1 where exists select from emp e2 where e1.empno e2.mg...