У меня есть таблица с именем records, которая хранится каждый раз, когда вы ездили по треку. Я только хочу вернуть лучшее время каждого трека. И я хочу установить TrackId Range. В этом примере я хочу, чтобы таблицы TrackId 2 и 3.
выглядели так:
TrackId PlayerId Time
1 2 3453
1 4 6757
2 7 5478
3 7 77453
3 8 66774
Я получаю имена для TrackId и PlayerId из двух отдельных таблиц, называемых треками и игроками.
То, что я хочу, чтобы результат был:
TrackId PlayerId Time
2 7 5478
3 8 66774
То, что я пытался:
SELECT TrackId,
PlayerId,
besttime,
FROM
(
SELECT
TrackId,
PlayerId,
MIN(Time) AS besttime,
FROM
records
LEFT JOIN tracks ON tracks.Id = records.TrackId
LEFT JOIN players ON records.PlayerId = players.Id
WHERE
tracks.Id >= 2
GROUP BY
TrackId
ORDER BY
tracks.Id ASC
) X
LEFT JOIN только там, чтобы получить имена для идентификаторов. Не очень относится к моему вопросу.
Это дает мне лучшее время для каждой дорожки, однако ... Идентификатор игрока неправильный, вместо того, чтобы показывать игрока 8, у которого время 66774, он показывает игрока 7 свремя 66774. Как сохранить ряд неповрежденным?