多对多选择:缺少数据

时间:2013-03-19 18:14:49

标签: mysql sql select many-to-many relational-database

在大学数据库中,我注册的学生模块之间存在多对多的关系:使用状态<的桥接表/强>

桥接表状态有一个多字段主键(使用 student 模块; stud_id和mod_id的唯一组合)< / p>

但是,从一般选择查询返回数据时,该查询旨在列出所有这些数据:

SELECT status.stud_id, student.fname, student.sname, status.mod_id, modle.mtitle, status.grades
FROM status
INNER JOIN modle
ON status.mod_id=modle.mod_id 
INNER JOIN student
ON status.stud_id=student.stud_id 
GROUP BY status.stud_id

该查询不会考虑学生可能有许多模块,并且只会将学生显示为具有单个模块。

1 个答案:

答案 0 :(得分:1)

为什么使用GROUP BY status.stud_id?这就是为什么你只有一个学生成绩的原因。

我在您的查询中没有看到任何聚合函数,因此您可能只需删除GROUP BY

SELECT status.stud_id, student.fname, student.sname, status.mod_id, modle.mtitle, status.grades
FROM status
INNER JOIN modle
ON status.mod_id=modle.mod_id 
INNER JOIN student
ON status.stud_id=student.stud_id