相關子查詢&非相關子查詢概念

wallimn發表於2011-09-08
轉自:http://blog.csdn.net/steves/article/details/5212983

子查詢:巢狀在其它查詢中的查詢語句。(又稱為內部查詢)

主查詢:包含其它子查詢的查詢稱為主查詢。(又稱外部查詢)



子查詢分為兩類:

相關子查詢
非相關子查詢
在主查詢中,每查詢一條記錄,需要重新做一次子查詢,這種稱為相關子查詢。

在主查詢中,子查詢只需要執行一次,子查詢結果不再變化,供主查詢使用,這種查詢方式稱為非相關子查詢。



舉例說明:

--相關子查詢

view plain
SELECT sname
FROM student
WHERE sex = ‘女’ AND
EXISTS ( SELECT * //相關子查詢
FROM sc
WHERE sc.sno = student.sno AND
sc.cno LIKE ‘ee%’);

--非相關子查詢

view plain
SELECT sname
FROM student
WHERE sex = ‘女’ AND
sno IN ( SELECT DISTINCT sno //不相關子查詢
FROM sc
WHERE cno LIKE ‘ee%’);

相關文章