php-MySQL @grouping结果按ID并按分数排序”问题

我设置了以下数据库格式:

id  fid     name    time    flag
1   224     Mike    112     3
2   555     John    98      5
3   224     Mike    101     0
4   121     Ann     80      1
5   224     Mike    55      7
6   121     Ann     150     4

我使用以下查询对按fid(或名称)分组的内容进行排序和显示,并按最短时间对其进行排序:

SELECT id, fid, name, MIN(time), flag FROM dblist GROUP BY name ORDER BY MIN(time)

当我按需要获取输出时,此方法工作正常.就像是:

name    time
Mike    55
Ann     80
John    98

但是,如果尝试显示fid,flag或与该特定时间记录相关联的任何其他字段,则会得到一些其他值(大概是查询首先出现).

我想得到的是以下格式:

id  fid     name    time    flag
5   224     Mike    55      7
4   121     Ann     80      1
2   555     John    98      5

我想知道是否有一种方法可以仅使用一个数据库和其他一些查询语法来完成此任务?

谢谢.

解决方法:

在两个条件1上使用自我连接,每个条件具有名称,每个名称的时间得分最少,按结果分组是不确定的,不能保证分组的最新或第一条记录的顺序

select t.* from t
join (SELECT name, MIN(`time`) `time`
 FROM t GROUP BY name) t1
on(t.name = t1.name and t.`time`=t1.`time`)
order by t.`time` 

Demo

上一篇:如何自定义MySQL ORDER BY


下一篇:linux排序,选择最后一行,管道到新文件