Я пытаюсь получить последние записи в группе по запросу, используя eloquent в laravel.
Мой текущий запрос:
$clubs = ClubsLooking::select('a.*')
->from(DB::raw('(SELECT *, (3959 * acos( cos( radians('.Auth::user()->latitude.') ) *
cos( radians( latitude ) )
* cos( radians( longitude ) - radians('.Auth::user()->longitude.')
) + sin( radians('.Auth::user()->latitude.') ) *
sin( radians( latitude ) ) )
) AS distance FROM clubs_looking ORDER BY created_at DESC) a'))
->groupBy('a.club_id')
->limit(4)
->get();
Запрос выглядит сложным, но просто используетметод haversine для вычисления расстояния между двумя координатами и возврата результата в виде столбца с именем distance.
У меня сложилось впечатление, что с помощью этого вложенного запроса я смогу сгруппировать, используя последнюю дату созданного_после чтенияэтот ответ - Получить самую последнюю строку с group by и Laravel
Однако, когда я запускаю этот запрос, я всегда сначала получаю самую старую запись, я пытался поэкспериментировать с ней несколькими способами, нобезрезультатно.
Кто-нибудь с большим мозгом, чем я, знает, что я делаю неправильно?