选择分组依据的最新记录

时间:2018-09-28 16:05:43

标签: mysql sql

我有一个查询,该查询从报表中提取记录列表,并连接了一些其他信息表。

表是数据库更改的日志,可以包含多个相似但不完全相似的记录。我们决定不显示一长串的更改,而只显示最近的更改。我尝试使用group by函数仅显示每个组的最新更改,但是我发现可以对其进行排序或排序以仅显示最新记录。似乎选择了列表中的第一条记录。 s参考表,用于存储不是工作人员并且正在被工作人员更改的其他用户的名称。

这是我的查询

select *, old.methodName as oldName, new.methodName as newName, s.firstName as fName, s.lastName as lName from changeReport 
left join methodLookup as old on (old.methodID = changeReport.oldMethod) 
left join methodLookup as new on (new.methodID = changeReport.newMethod) 
join students on (s.ID = changeReport.ID) 
left join staffaccounts on (changeReport.staffID = staffaccounts.staffID) 
where newSubMethod = '$bnu' and date(timestamp) = CURRENT_DATE OR oldSubMethod = '$bnu' and date(timestamp) = CURRENT_DATE 
group by s.ID 
order by changeReport.rID desc

如何修改此查询(也许是子查询?我似乎无法使其正常工作)以显示已经显示的数据,但是该组中的最新记录?一切都有正确的时间戳。

0 个答案:

没有答案