我试图显示那些注册学习最长课程的学生的名字。要提供一些上下文,当命令:
SELECT s.student_name, c.duration
FROM course_table c
JOIN student_table s
ON s.course_id = c.course_id;
运行时,将显示:
+---------------+----------+
| student_name | duration |
+---------------+----------+
| John Smith | 4 |
| Alan O'Brien | 4 |
| Sarah Murphy | 3 |
| Sean Mulligan | 4 |
+---------------+----------+
我用过:
SELECT s.student_name, MAX(c.duration)
FROM course_table c
JOIN student_table s
ON s.course_id = c.course_id;
但这只显示了其中一个学生在上4年的课程。我也试过使用“极限3”,但不仅没有工作,这将感觉像一个创可贴修复。mysql中是否有其他类似于“max()”的函数,但会显示所有最大值(假设有多个值)?
1条答案
按热度按时间3okqufwl1#
从派生表中的所有指定课程(分配给学生)中获取总的最大持续时间值。
使用将此派生表联接到主表
duration
.请尝试以下操作: