2012-11-22 163 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