Mysql 仅获取报告练习id上用户的上次trynumber报告

Mysql 仅获取报告练习id上用户的上次trynumber报告,mysql,sql,laravel-query-builder,Mysql,Sql,Laravel Query Builder,我希望你身体好 我需要,如果有人能在MYSQL中帮助我,我使用Laravel,但direct SQL对我来说也一样: 我有一个包含列的报表表 -id -exercise_id (example 1 is not a foreign key since the exercises are not known) -try_number (user attempt number) -fk_student (foreign key of a student) 我需要得到所有的报告,但每个学生只有一份,

我希望你身体好

我需要,如果有人能在MYSQL中帮助我,我使用Laravel,但direct SQL对我来说也一样:

我有一个包含列的报表表

-id
-exercise_id (example 1 is not a foreign key since the exercises are not known)
-try_number (user attempt number)
-fk_student (foreign key of a student)
我需要得到所有的报告,但每个学生只有一份,练习id,只有试玩次数最多的报告

例如,如果我有以下数据:

ID: 1
Exercise_ID: 1
TryNumber: 1
FK_Student: 1

ID: 2
Exercise_ID: 1
TryNumber: 2
FK_Student: 1

ID: 3
Exercise_ID: 1
TryNumber: 1
FK_Student: 2

ID: 4
Exercise_ID: 1
TryNumber: 2
FK_Student: 2

ID: 5
Exercise_ID: 1
TryNumber: 3
FK_Student: 2

ID: 6
Exercise_ID: 2
TryNumber: 1
FK_Student: 1

ID: 7
Exercise_ID: 2
TryNumber: 2
FK_Student: 1
我想得到以下信息:

ID: 2
Exercise_ID: 1
TryNumber: 2
FK_Student: 1

ID: 5
Exercise_ID: 1
TryNumber: 3
FK_Student: 2

ID: 7
Exercise_ID: 2
TryNumber: 2
FK_Student: 1
我尝试分组,但我感到困惑:

我回顾一下 但我不明白如果有必要,如何添加where和group,因为这只不过是每个学生和练习id的一个,而且只有try\u编号最高的报告

我有这个SQL

select * from `reports`
where unity_try_number = (select max(`unity_try_number`) from reports)
group by `fk_student`, `unity_exercise_id`
但我不知道如何在子查询中添加实际fk_学生和实际练习id,从报告中选择maxunity_try_编号


多谢各位!你好

使用相关子查询:

select r.*
from reports r
where r.unity_try_number = (select max(r2.unity_try_number)
                            from reports r2
                            where r2.fk_student = r.fk_student and
                                  r2.unity_exercise_id = r.unity_exercise_id
                           );

非常感谢你!你救了我,这工作做得很好,我一整天都在努力,直到我学会了一些新的祝福!