相關和非相關查詢區別

2021-08-30 01:23:49 字數 796 閱讀 9244

相關和非相關查詢區別

--求各部門人數

--格式:select d.*,0 人數 from dept d

select d.*,

(select count(*) from emp e

where e.deptno=d.deptno

) 人數

from dept d

select d.* from dept d

部門:10

select count(*) from emp e   where e.deptno=10

20select count(*) from emp e   where e.deptno=20

30select count(*) from emp e   where e.deptno=30

40select count(*) from emp e   where e.deptno=40

50select count(*) from emp e   where e.deptno=50

60select count(*) from emp e   where e.deptno=60

對於部門表的每一條記錄,都要單獨執行一次子查詢,所以稱為相關子查詢。

列出薪金比「smith」多的所有員工

select * from emp e

where e.sal>

(select e.sal from emp e  where e.ename='smith'

)smith的值只求一次,這個值對於emp中所有記錄都是一樣的,即不與各記錄相關,所以稱為非相關子查詢。

什麼是 相關子查詢 和 非相關子查詢

先執行主查詢,再針對主查詢返回的每一行資料執行子查詢,如果子查詢能夠返回行,則這條記錄就保留,否則就不保留。舉例1 相關子查詢查詢 查詢所有是領導的員工資訊 select from emp e1 where exists select from emp e2 where e1.empno e2.mg...

Mysql 非相關子查詢和相關子查詢的執行解析

前段時間有乙個相關子查詢的sql語句,看不太懂他是如何執行的,為什麼會出現那個結果。著實糾結了一把。下面來講一下非相關子查詢和相關子查詢的執行過程是怎樣的。先看乙個非相關子查詢到sql語句。需求 查詢學生表student和學生成績表grade中成績為70分的學生的基本資訊。select t.sno,...

mysql 非相關子查詢 相關子查詢一

1 子查詢在查詢語句中可出現的位置 2 子查詢的分類 3 子查詢的優化的思路 3.1 做子查詢優化的原因 3.2 子查詢優化技術 3.3 子查詢展開 4 最常見的子查詢型別的優化 4.1 in型別 4.2 all any some型別 4.3 exists型別 5 例項 二 相關子查詢和非相關子查詢...