将 mysql 查询转换为 Laravel 的 DB:Query 生成器

Convert mysql query to Laravel's DB:Query Builder

我使用 SQL 工具在数据库上试过这个。它工作完美。但现在我正在努力将它实施到我的数据库:查询 Builder.Any 帮助或建议将不胜感激。如果需要更多细节请评论..我接下来会关注

SELECT u.*, (6371 * acos(cos(radians(22.559648)) * cos(radians(`lat`)) * cos(radians(`lng`) - radians(88.415552)) + sin(radians(22.559648)) * sin(radians(`lat`)))) AS distances 
FROM users AS u
JOIN locations AS l ON `u`.`location_id` = `l`.`id` 
HAVING distances < 32.688888 
ORDER BY distances DESC

@JinalSomaiya 我更改了以下内容并且工作正常。

 ->having('distances', '<', 32.688888])

->having('distances', '<', [32.688888])

->join('locations as l', 'l.id', '=', 'users. location_id')

->join('locations as l', 'users.location_id', '=', 'l.id')

最终查询:

编辑

DB::table('users')
            ->join('locations as l', 'users.location_id', '=', 'l.id')
            ->select('users.*', DB::raw('(6371 * acos(cos(radians(22.559648)) * cos(radians(`lat`)) * cos(radians(`lng`) - radians(88.415552)) + sin(radians(22.559648)) * sin(radians(`lat`)))) as distances'))
            ->having('distances', '<', 32.688888)
            ->orderBy('distances', 'DESC')
            ->get();