人の名前、1マイルを走るのにかかった時間、およびその1マイルを走ったときに、その人の最新のラップタイムを取得するための最良の方法を保存したテーブルがある場合。
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
)
このタイプのクエリを使用している実際のテーブルは巨大なので、最も時間効率の良い方法を探しています。