首页 > 解决方案 > 如何在mysql中获得每门课程的最后四个分数?

问题描述

我的数据库有四个表:student, course, stu_course, score.

课程表的列:id、name

学生表的列:id、firs_name、last_name、用户名、密码

stu_course表的列:id、stu_id、course_id (stu_id 和 cours_id 是外键)

列 fir score table: id, stu_cours_id, score, date (stu_cours_id isforein ksy)

我的问题是如何在分数表中获得每门课程的最后四个分数?
这是我目前拥有的:

SELECT s.first_name
     , c.name
     , sc.id
     , k.score
     , k.date
     ,  
  FROM student s
  JOIN stu_course sc
    ON sc.stu_id = s.id
  JOIN course c
    ON c.id = sc.course_id
  JOIN score k
    ON k.stu_course_id = sc.id

感谢您的帮助

标签: mysqlsqlgreatest-n-per-group

解决方案


您可以使用 ORDER BY 语句对列表进行排序(使用 order by desc 进行降序排序),然后使用 LIMIT x 仅显示前 x 个结果。

实际上,如果您使用 ORDER BY DESC LIMIT x,您将在按您选择的列排序时看到底部的 x 结果


推荐阅读