1

我有一个用于单圈时间的简单 MySQL 表。由以下组成

  • 主键
  • 跟踪 ID
  • 用户编号
  • 单圈时间
  • 圈速状态

我基本上想选择前 10 个单圈时间,但每个用户只能选择一个。因此,如果我有 2 圈 X 赛道,我想获得最好的。

如果我跑

SELECT * FROM tbl_lap_times ORDER BY lap_times ASC

我看到了我的单圈时间,我最好的时间在顶部。但如前所述,我只想要每个用户一圈时间。

如果我跑

SELECT * FROM tbl_lap_times GROUP BY users_id ORDER BY lap_times ASC

然后我得到了我的第一个单圈时间,(这不是我最好的单圈时间)

有什么建议么?

4

2 回答 2

0

您是否尝试过使用该min()功能?

SELECT users_id, min(lap_times) FROM tbl_lap_times GROUP BY users_id

于 2012-11-08T13:35:47.250 回答
0

您需要使用MIN. 像这样的东西应该可以工作(未经测试):

SELECT user_id, track_id, lap_status, MIN(lap_times) AS best_time
FROM tbl_lap_times
GROUP BY user_id, track_id, lap_status
ORDER BY best_time DESC
LIMIT 10
于 2012-11-08T13:35:52.310 回答