На данный момент он получает время гонок по порядку, но я хочу объединить столбец user_id вместе, но чтобы убедиться, что когда он группирует его, сохраняется самое быстрое время записи.
Пример того, что я так далеко от запроса
User_id | race_id | recorded_time | stroke |
__________________________________________
2 | 2 | 10.03 | fly |
____________________________________________
1 | 3 | 12.98 | fly |
____________________________________________
2 3 13.58 | fly |
Вот код, который дает мне этот результат
$query->where('race_history.stroke', '=', $stroke)
->orderBy('recorded_time', 'ASC')->get();
Это то, что я хочу вернуть
User_id | race_id | recorded_time | stroke |
__________________________________________
2 | 2 | 10.03 | fly |
____________________________________________
1 | 3 | 12.98 | fly |
____________________________________________
Я попробовал код ниже, но это не занимает самое быстрое время записи
$query->where('stroke', '=', $stroke)
->orderBy('recorded_time', 'ASC')
->groupBy('user_id')->get();
Но вместо этого производит это
User_id | race_id | recorded_time | stroke |
__________________________________________
1 | 3 | 12.98 | fly |
____________________________________________
2 | 3 | 13.58 | fly |
____________________________________________
Таким образом, его группировка по user_id, НО не занимает самое быстрое время записи
Я пробовал так много способов, как кто-нибудь может помочь, это необработанный запрос, чтобы получить то, что я хочу, я бы использовал это, но расстояние AND не нравится ..
$total = DB::select(DB::raw('
SELECT *, min(recorded_time) as time
FROM race_history
WHERE stroke = "' . $stroke . '" AND distance="' . $distance . '"GROUP BY user_id
ORDER BY min(recorded_time) ASC
'));
Вот необработанный запрос, так как я не знаю синтаксис laravel
SELECT `user_id`, `race_id`, min(`recorded_time`) AS `recorded_time`, `stroke`
FROM `race_history`
WHERE `stroke` = 'fly'
GROUP BY `user_id`
ORDER BY `recorded_time` ASC
Других решений пока нет …