我有兩個表,用於存儲候選人及其成績。一個簡單的連接可以得到所有的考生和他們的成績,通過匹配的ID等加入時的問題,其中一列一方爲空
如:
Alan C
George A
等等。但是:
Nina
爲尼娜等級爲null,因爲她沒有參加考試。
如何獲得如下輸出?
Alan C
George A
Nina
所以還是得到妮娜,儘管她沒有參加考試。我試過null檢查,然後進行一些東西,等
感謝
我有兩個表,用於存儲候選人及其成績。一個簡單的連接可以得到所有的考生和他們的成績,通過匹配的ID等加入時的問題,其中一列一方爲空
如:
Alan C
George A
等等。但是:
Nina
爲尼娜等級爲null,因爲她沒有參加考試。
如何獲得如下輸出?
Alan C
George A
Nina
所以還是得到妮娜,儘管她沒有參加考試。我試過null檢查,然後進行一些東西,等
感謝
您想使用左連接。
select c.name, coalesce(g.grade,'')
from candidate c
left join grade g
on c.candidate_id = g.candidate_id
您需要使用left join
。例如:
select c.name, g.grade
from candidates c
left join grades g on g.candidateid=c.id
左連接始終列出連接「左」側的所有行 - 在本例中爲候選。在考生在成績表中沒有條目的行上,從該表填充的所有列都將爲空。
您需要爲此使用左連接。
+1使用'coalesce' – 2011-02-25 16:47:23