2016-06-12 16 views
0

私はあなたがS.course_id=T.course_idを見ることができ、内側のクエリのwhere句の第二部では内部クエリで相関名はどのように機能しますか?

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 
); 

として「両方の2009年秋学期にし、2010年春学期に教えてすべてのコースを探す」ためのクエリを持っています。 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

関連する問題