0

在大学数据库中,我在学生和他们注册的模块之间建立了多对多的关系:使用status的桥接表。

桥接表状态有一个多字段主键(使用studentmodule的唯一组合;stud_id 和 mod_id)

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

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

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

4

1 回答 1

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 
于 2013-03-19T18:17:21.030 回答