Прежде всего, ваш запрос на самом деле неверный SQL.Вам нужно использовать функцию MIN
, чтобы получить самый быстрый lapTime
.Кроме того, вам нужно GROUP BY lapRaceName, raceDate
вместо lapRaceName
.К сожалению, в этом случае mysql достаточно слаб, чтобы выполнить его без ошибок.
Кроме того, вы СОЕДИНЯЕТЕ LapInfo
с Race
и возвращаете объединенные столбцы из LapInfo
, которые вы называете псевдонимом, в качестве имен, которые могутможно найти в Race
.Это нормально с точки зрения SQL, но это также очень сложно: возвращайте непосредственно столбцы из таблицы Race
, так как они имеют имена, которые вы ищете.
Наконец, было бы гораздо лучшеуказать, к какой таблице принадлежит каждый столбец.Здесь столбец lapTime
принадлежит таблице LapInfo
, поэтому давайте сделаем это явным.
Запрос:
SELECT
Race.raceName,
Race.raceDate,
MIN(LapInfo.lapTime)
FROM
Race
INNER JOIN LapInfo
ON LapInfo.lapRaceName = Race.raceName
AND LapInfo.lapRaceDate = Race.raceDate
GROUP BY
Race.raceName,
Race.raceDate
;