抱歉,如果标题混乱,我有一个表,其中存储了一个球员,以及他们花了多长时间完成Map秒,我试图写一个查询,选择所有Map,一个特定的球员有最快/最短的时间
我尝试了以下查询:
SELECT *
FROM ck_playertimes a
JOIN
( SELECT MIN(runtimepro) runtimepro
FROM ck_playertimes
WHERE style = 0
group
by mapname
) b
ON a.runtimepro = b.runtimepro
WHERE steamid = 'STEAM_1:0:20019070'
AND style = '0'
然而,对于一个特定的Map,它会选择一些不是最短/最快的时间,并且当表中不存在该重复项时,甚至会有一个重复项
有什么帮助吗?=)
2条答案
按热度按时间ggazkfy81#
你所要求的是最小和最大时间,对于每个玩家,对于每个Map,这是一个基本的选择与分组方式,与博加入需要
我假设您从中选择的表除了以秒为单位的时间外,还保存了一个player\u id,并保留了您提供的where条件
希望有帮助
hlswsv352#
您加入的子查询应该找到每个播放器的最短运行时间。因此,以下方法应该有效:
如果您使用的是mysql 8+或更高版本,那么编写上述查询的另一种更现代的方法
ROW_NUMBER
: