我设置了以下数据库格式:
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`