2012-11-12 143 views
2
Select CH.id, CH.studentId, ST.name, CH.recordId, RC.name 
from checklist CH, student ST, record RC 
Where CH.studentId=ST.id and CH.recordId=RC.id 

上面是使用mysql的查詢。上面的查詢的問題是,當CH.recordId的值爲null時,它不會顯示任何結果。現在我的問題是如何顯示結果,即使CH.recordId爲空?並在mysql結果選項卡中,CH.recordId和RC.name列將僅爲空。顯示結果甚至爲空值

謝謝。

回答

1

使用明確的聯接語法,這樣你可以做一個left join

select CH.id, CH.studentId, ST.name, CH.recordId, RC.name 
from checklist CH 
join student ST 
    on ST.id = CH.studentId 
left join record RC 
    on RC.id = CH.recordId 
0

LEFT JOIN的表,而不是INNER JOIN,並使用新的SQL-92的語法像這樣:

SELECT CH.id, CH.studentId, ST.name, CH.recordId, RC.name 
FROM checklist CH 
LEFT JOIN student ST ON CH.StudentId = ST.id 
LEFT JOIN record RC ON CH.recordId = RC.id 
+0

SQL-92是20歲,幾乎沒有「新」。 :-) – Wyzard

+0

@Wyzard - 它比舊的89語法更新,OP使用WHERE來表示我的意思:-)。 –