2013-10-24 92 views
1

所有的結果我有2個主表SQL查詢,以顯示與外鍵

Semesters (Sem_id(PK),Sem_name) 
Modules (Mod_id(PK),Mod_Name,Unit_id) 

和一張桌子稱爲result_summary,保持從學期外鍵和模塊

(Res_sum_id(PK),Sem_id(FK),Mod_id(FK)) 

決賽桌Semester_Results進入等級對於在特定學期發生的特定模塊中的學生

(Sum_res_id(PK),Res_sum_id(FK),Student_id(FK),Grade_id(FK)) 

和我編寫下面查詢

select m.Mod_id,m.Mod_Name, s.semester_name,g.Grade_id 
from exa_modules m, exa_grades g, exa_semesters s, exa_results_summary rs, 
exa_semester_results sr 
where m.Mod_id=rs.Mod_id 
and rs.Res_sum_id=sr.Res_sum_id 
and s.Sem_id=rs.Sem_id 
and sr.grade_id=g.grade_id 
and student_id=3 
group by rs.semester_id 

上面的查詢給出了結果,但在一個學期不顯示多於1個模塊的結果。

例如,學生1在同一學期提供了兩個模塊,但只獲得一個模塊結果

任何人都可以請幫忙嗎?

在此先感謝

+0

嘗試內部聯接! –

+0

你可以使用sqlfiddle,並顯示你的結果,我已經在這裏爲你開始了一些東西 - http://sqlfiddle.com/#!2/2c3df/1 – Vishal

+0

你好,感謝您在sqlfiddle上啓動查詢。我更新了模式並插入了數據以更好地查看查詢。它顯示完全相同的結果,我也嘗試了分組學期和模塊,但沒有運氣。 http://sqlfiddle.com/#!2/e2a66/7 –

回答

0

你需要按學期和學生上了課的模塊......否則只需要基於一個學期的所有記錄的第一個。

0

我設法讓其他行使用相同的查詢。但是,(我也發佈了一個關於這個問題的新問題)結果顯示在單獨的視圖中的單獨行。

這裏是我使用的查詢:

select m.unit_id,m.module_name,g.grade_short, s.semester_name 
from exa_modules m, exa_grades g, exa_semesters s, exa_results_summary rs, exa_semester_results sr 
where m.module_id=rs.module_id 
and rs.result_sum_id=sr.result_sum_id 
and s.semester_id=rs.semester_id 
and sr.grade_id=g.grade_id 
and user_id=3 
group by rs.result_sum_id, rs.semester_id 
order by s.semester_id