У меня есть две таблицы. Стол под названием laps
, в котором хранится запись всех кругов, завершена по дорожке автомобилем и таблицей best_time
, которая состоит из самых быстрых раз для определенных расстояний на этом круге. Например, он будет содержать самые быстрые 1k на этом круге или самую быструю половину мили.MySQL выбирает строку, где одно поле меньше, чем предыдущая запись, и одно поле больше
Я хочу выбрать из этих таблиц максимальная скорость для каждого расстояния. Таким образом, он покажет вашу личную прогрессию на этом расстоянии на этом круге с течением времени. Например, ваш самый быстрый 1к, возможно, был установлен в январе, а затем вы разбили его в июне и снова в августе. Ниже то, что структура best_times
таблица выглядит
best_time_id int(10)
lap_id int(11)
start_time int(10)
end_time int(10)
total_distance decimal(7,2)
total_elapsed_time decimal(11,2)
нужно выбрать записи, где total_elapsed_time
меньше, чем предыдущий рекорд и start_time
больше. Вот мой запрос до сих пор
SELECT `bt`.`total_distance`, `bt`.`total_elapsed_time`, `bt`.`start_time`
FROM `best_times` AS `bt`, `laps` AS `l`
WHERE (
SELECT COUNT(*) FROM `best_times` AS `bt2`
WHERE `bt2`.`total_distance` = `bt`.`total_distance`
AND `bt2`.`total_elapsed_time` <= `bt`.`total_elapsed_time`
AND `bt2`.`start_time` > `bt`.`start_time`
) <= 10 AND `l`.`lap_id` = `bt`.`lap_id` AND `l`.`car_id` = 1 ORDER BY `bt`.`total_distance` ASC, `bt`.`total_elapsed_time` desc
Этот вид работ, но он выбирает запись, которая не должна. Примером результирующего набора я возвращаюсь это
| total_distance | total_elapsed_time | start_time |
|----------------|--------------------|------------|
| 1000.00 | 99.15 | 1431344798 |
| 1000.00 | 98.25 | 1431604966 | This record shouldn't be here because although it's quicker it happened after the 91.40 time
| 1000.00 | 91.40 | 1431433535 |
Я близко, но может кто-нибудь увидеть, где я иду не так. Пожалуйста, дайте мне знать, если мне нужно предоставить дополнительную информацию.
Спасибо за вашу настойчивость :) Это то, что мне нужно, и чтение через решение имеет смысл – Pattle
, пожалуйста, рад, что мы решили это в конце! – Jayvee