我有2张主表
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)
你需要按学期和学生上课的模块进行分组......否则只需要基于一个学期的所有记录中的第一个。
答案 1 :(得分: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