Неожиданное поведение при использовании groupby в красноречивом запросе для последних записей - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь получить последние записи в группе по запросу, используя 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

Однако, когда я запускаю этот запрос, я всегда сначала получаю самую старую запись, я пытался поэкспериментировать с ней несколькими способами, нобезрезультатно.

Кто-нибудь с большим мозгом, чем я, знает, что я делаю неправильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...