php - 将 mysql 查询转换为 laravel eloquent?

标签 php mysql eloquent laravel-5

我想从两个表中获取数据,一个是药房,另一个是地址。我可以简单地使用像这样的查询来做到这一点

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/

相关文章:

PHP HTML 表单没有将数据发布到数据库?

PHP 显示数据库中的图像

php - 使用 Laravel Eloquent 进行缓慢的 MySQL 查询

php - 使用 php mysql 将 auto_increment 主值设置为其他字段

php - Laravel - php 如何在数据库中插入值时获取当前 Id?

php - Yii2 - 每天对 ActiveRecord 的查询计数

python - 查询期间失去与 MySQL 服务器的连接

javascript - 使用 passport.js、mysql 和 express-session 保持登录状态

php - 获取不同的列并返回过滤结果

php - Laravel hasMany 关系计数帖子上的喜欢和评论数