2016-06-12 19 views
0

我有一個查詢「查找並在2009年秋季學期都在2010年春季學期教所有的課程」爲相關名稱在內部查詢中如何工作?

SELECT 
    course_id 
FROM 
    section S 
WHERE 
    semester = 'Fall' 
AND YEAR = 2009 
AND EXISTS (
    SELECT 
     * 
    FROM 
     section T 
    WHERE 
     semester = 'Spring' 
    AND YEAR = 2010 
    AND S.course_id = T.course_id 
); 

在內部查詢的WHERE子句,你可以看到S.course_id=T.course_id的第二部分。 S.course_id是什麼?是由外部查詢產生的關係的course_id

+3

Yes.'S.course_id'由外部查詢提供。 – 1000111

回答

0

是S.course_id是外部查詢中的列。
S.course_id = T.course_id只選擇記錄中,無論是內部和外部的查詢過程ID等於


中序發現在這兩個2009年秋季學期和2010年春季學期講授所有課程您的查詢應該像

SELECT course_id FROM section 
WHERE 
semester = 'Fall' AND year = '2009' 
UNION 
SELECT course_id FROM section 
WHERE 
semester = 'Spring' AND year = '2010' 
; 

參考http://sqlfiddle.com/#!9/449be