我想从两个表中获取数据,一个是药房,另一个是地址。我可以简单地使用像这样的查询来做到这一点
SELECT pharmacies.*,
addresses.*,
( 6371 * acos( cos( radians(32.5033801) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(74.49884399999999) ) + sin( radians(32.5033801) ) * sin( radians( lat ) ) ) ) AS distance
FROM `pharmacies` join
addresses on pharmacies.address_id=addresses.address_id
HAVING distance < 25
ORDER BY distance
我想在 laravel eloquent 中进行完全相同的查询。药房与地址具有一对一的关系。请帮助我
谢谢
最佳答案
您可以这样编写查询:
DB::table('pharmacies')
->select('pharmacies.*','addresses.*',
DB::raw('(6371 * acos( cos( radians(32.5033801) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(74.49884399999999) ) + sin( radians(32.5033801) ) * sin( radians( lat ) ) ) ) AS distance'))
->join('addresses','pharmacies.address_id','=','addresses.address_id')
->having('distance','<',25)
->orderBy('distance','asc');
关于php - 将 mysql 查询转换为 laravel eloquent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37476533/