在雄辩地查询最新记录时使用groupby发生意外行为

时间:2019-03-27 21:03:45

标签: laravel 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的列返回。

给我的印象是,通过使用此嵌套查询,我将能够在阅读此答案后使用最新的created_at日期进行分组-Get most recent row with group by and Laravel

但是,当我运行此查询时,我总是总是最先获得最旧的记录,但我尝试通过多种方式进行处理,但无济于事。

有比我大的脑袋的人知道我在做什么吗?

0 个答案:

没有答案