gpt4 book ai didi

mysql - 基于日期时间查询最近的最佳方法(MySQL)

转载 作者:行者123 更新时间:2023-11-29 08:39:02 25 4
gpt4 key购买 nike

如果我有一个表来存储一个人的名字、他们跑一英里所花费的时间以及他们跑一英里的时间,那么获取一个人最近的单圈时间的最佳方法是什么。

LAPS
____________________________________________
| name | lap_time | date |
--------------------------------------------
| George | 20.3 | 2013-01-17 09:17:14 |
| Alex | 32.2 | 2013-02-17 14:24:32 |
| Mike | 16.6 | 2013-01-17 07:57:54 |
| Alex | 28.5 | 2013-01-17 19:50:21 |
| Mike | 15.1 | 2013-02-17 12:37:12 |
| Mike | 14.8 | 2013-03-17 06:58:34 |
''''''''''''''''''''''''''''''''''''''''''''

我一直在这样做,到目前为止它对我有用,但我很想知道是否有更好的方法。

SELECT l.lap_time
FROM laps l
INNER JOIN(
SELECT *, MAX(date) as most_recent
FROM laps
WHERE name = 'Alex'
)AS temp ON (
l.date = temp.most_recent
AND l.name = temp.name
)

我使用此类查询的实际表很大,因此我正在寻找最省时的方法。

最佳答案

这适用于单个名称:

SELECT name, lap_time, date
FROM laps
WHERE name = 'Alex'
ORDER BY date DESC
LIMIT 1

结果

| NAME | LAP_TIME |                            DATE |-----------------------------------------------------| Alex |     32.2 | February, 17 2013 14:24:32+0000 |

See the demo

This should work for all names:

SELECT a.name, b.lap_time, a.date
FROM
(SELECT name, MAX(date) AS date FROM laps GROUP BY name) a
LEFT JOIN laps b
ON b.date = a.date AND b.name = a.name

结果

|   NAME | LAP_TIME |                            DATE |-------------------------------------------------------|   Alex |     32.2 | February, 17 2013 14:24:32+0000 || George |     20.3 |  January, 17 2013 09:17:14+0000 ||   Mike |     14.8 |    March, 17 2013 06:58:34+0000 |

See the demo

关于mysql - 基于日期时间查询最近的最佳方法(MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14385522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com