【问题标题】:many-to-many select: missing data多对多选择:缺少数据
【发布时间】:2013-03-19 18:14:48
【问题描述】:

在大学数据库中,我在 students 和他们注册的 modules 之间建立了多对多关系:使用 status。

桥接表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

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

【问题讨论】:

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


    【解决方案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 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-25
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多