oracle高階查詢之相關子查詢

2022-09-05 18:51:10 字數 662 閱讀 5729

在子查詢中一般先執行子查詢,在執行住查詢,但是相關子查詢列外

相關子查詢就是把主查詢的值作為引數傳遞給子查詢

例子:找到員工表中薪水大於平均薪水員工

方法一: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...