【发布时间】:2013-10-30 15:50:54
【问题描述】:
我正在从一组中的每个班级中搜索一名学生。有不同的班级小组,每个小组都有不同的班级,每个班级都有多个学生。见下文:
Group1 --> Class1, Class2 etc
Class1 --> GreenStudent1, GreenStudent2 etc
Class2 --> RedStudent1, RedStudent2 etc
------------------------------------------------------
SELECT
table1.id,
table1.myname,
table1.marks
table2.studentid,
table2.studentname
FROM table1
INNER JOIN table3 ON table1.oldid = table3.id
INNER JOIN table2 ON table2.studentid = table3.newid
WHERE
table1.classgroup = 'SCI79'
GROUP BY table1.oldid
ORDER BY table1.marks DESC
查询中应用了不同的联接。上面提到的查询给了我正确的结果,但我几乎不需要修改它。当前查询返回我每个班级的一名学生。
我需要什么?我需要每个班级一个学生,但只有那个学生有 MAXIMUM
table1.marks
所以我应该让每个班级的一名学生在其相关班级中人数最多。任何人都可以提出一些解决方案或重写此查询吗?谢谢:)
【问题讨论】:
-
这将有助于显示表的一些实际结构(至少每个连接和列)和示例数据以显示规范化数据。
标签: mysql