Mysql 仅获取报告练习id上用户的上次trynumber报告
我希望你身体好 我需要,如果有人能在MYSQL中帮助我,我使用Laravel,但direct SQL对我来说也一样: 我有一个包含列的报表表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) 我需要得到所有的报告,但每个学生只有一份,
-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
);
非常感谢你!你救了我,这工作做得很好,我一整天都在努力,直到我学会了一些新的祝福!