2012-07-04 21 views
1
SELECT C.COURSE_ID, TITLE, A.STUDENT_ID, COMPANY_ID, AD.ADDRESS 
FROM COURSE C, STUDENT S, ADDRESS AD, ATTENDANCE A 
WHERE C.COURSE_ID = AD.COURSE_ID 
AND AD.ADDRESS = A.ADDRESS 
AND A.STUDENT_ID = S.STUDENT_ID 
AND COMPANY_ID IS NOT NULL; 

我有4個表,並且此查詢完成了它所需的所有操作,但我必須在出席表中包含ADDRESS。 例如在MySQL中顯示不存在於第二個表中的記錄+

ADDRESS TABLe   ATTENDANCE table 
Address     Address 
    a       a 
    b       b 
    c 
    d 

所以我想最終的結果顯示:

COURSE ID TITLE STUDENT_ID COMPANT_ID ADDRESS 
    BLA  BLA  BLA   BLA   a 
    BLA  BLA  BLA   BLA   b 
    BLA  BLA  BLA   BLA   c 
    BLA  BLA  BLA   BLA   d 

儘管以上查詢顯示相同的結果,但不包括在「地址」列c和d存在。

對不起,如果我不夠清楚。謝謝

+0

不別名「O」代表什麼表? –

+0

ahh thats supppposed to AD .. sorry sorry my – NLimbu

回答

2

如果你改變你的查詢中使用的LEFT JOIN加入ATTENDANCE表它將排除所有記錄不存在,它是在ADDRESS

+2

'INNER JOIN'將刪除未鏈接到另一個表中的記錄。 'LEFT JOIN'似乎稍微適合您的答案? – jared

+0

我想包括不排除。謝謝 – NLimbu

+2

我誤解了這個問題。一個'LEFT JOIN'正是應該使用的。 –

相關問題