2012-11-22 156 views
0

我正在處理SQL查詢,並且我完全迷失了自己的聯接。希望你能夠協助:)從表中合併列,併合並具有相同ID的行

我的問題是,從單獨的錶行不合併到一個單一的行中,他們都有相同的ID。長久以來,我一直對我一直感到困惑,因此任何幫助都將不勝感激。

我有以下表格:

Students 
id 

StudentCredits 
sum_credits 

StudentMandatoryCredits 
branch_credits 
program_credits 

我試圖創建一個查詢,這將使我行這樣的:

id   - sum_credits - branch_credits - program_credits 
another_id - sum_credits - branch_credits - program_credits 
a_third_id - sum_credits - branch_credits - program_credits 

這是最好的,我可以拿出雖然:

id - sum_credits - branch_credits -  [empty] 
id - sum_credits -  [empty] - program_credits 

這是我的SQL語句:

SELECT S.id, SC.sum_credits, SMC.branch_credits, SMC.program_credits 
FROM Students S 
LEFT JOIN StudentCredits SC ON S.id = SC.id 
LEFT JOIN StudentMandatoryCredits SMC ON S.id = SMC.id 
ORDER BY id 

回答

2

嘗試使用:

SELECT S.id, SUM(SC.sum_credits), SUM(SMC.branch_credits), SUM(SMC.program_credits) 
FROM Students S 
LEFT JOIN StudentCredits SC ON S.id = SC.id 
LEFT JOIN StudentMandatoryCredits SMC ON S.id = SMC.id 
GROUP BY S.id 
ORDER BY S.id 
+0

很不錯的!我試圖使用GROUP BY S.id,但在其他屬性上出現錯誤。從來沒有想過對他們使用SUM()!謝謝! (並且在排序之前進行分組,至少在我使用的dbms中)。 – span