1. 程式人生 > >sql非相關子查詢與相關子查詢

sql非相關子查詢與相關子查詢

子查詢:巢狀在其他查詢中的查詢稱之。
子查詢又稱內部,而包含子查詢的語句稱之外部查詢(又稱主查詢)。
所有的子查詢可以分為兩類,即相關子查詢和非相關子查詢
1. 非相關子查詢是獨立於外部查詢的子查詢,子查詢總共執行一次,執行完畢後將值傳遞給外部查詢。
2. 相關子查詢的執行依賴於外部查詢的資料,外部查詢執行一行,子查詢就執行一次。
故非相關子查詢比相關子查詢效率高

--非相關子查詢 
Select SNO,SN
From StudentInfo
Where SNO in (Select SNO From HomeworkInfo
                         Where
CNO = 'K002')
--相關子查詢 
Select SNO,SN From StudentInfo as A Where exists
(Select SNO From HomeworkInfo as B 
 Where CNO = 'K002' and B.SNO = A.SNO)