2013-10-13 68 views
2

我有這些記錄:MySQL的 - 與LEFT OUTER選擇記錄JOIN和WHERE子句

Table siswa 
student_id | student_name | 
--------------------------- 
1   | Abi   | 
2   | Bayu   | 
3   | Charles  | 


Table nilai 
semester | subject | student_id | mark | 
---------------------------------------- 
1  | 1  | 1   | 7 | 
1  | 1  | 2   | 9 | 
1  | 1  | 3   | 8 | 
1  | 2  | 1   | 4 | 
1  | 2  | 2   | 6 | 
2  | 1  | 1   | 9 | 

我要選擇所有學生的名字在第二學期和主題1.結果我希望是這樣的:

student_name | mark 
------------------- 
Abi   | 9 
Bayu   | null 
Charles  | null 

我試過這個查詢,但它不起作用。我怎樣才能做到這一點?

SELECT s.name FROM siswa s LEFT OUTER JOIN nilai n ON s.student_id = n.student_id 
WHERE n.semester = '2' AND n.subject = '1' 

回答

2

也許您正在尋找這樣的事情:

SELECT s.student_name, n.mark FROM siswa s 
LEFT JOIN nilai n ON s.student_id = n.student_id AND semester = 2 AND subject = 1 

你需要處理的left join結果。如果你在where條款上這樣做,那麼你會刪除它們。