将 mysql 查询转换为 laravel 查询生成器

Posted

技术标签:

【中文标题】将 mysql 查询转换为 laravel 查询生成器【英文标题】:convert mysql query to laravel query builder 【发布时间】:2019-03-09 00:42:57 【问题描述】:

我想将此查询转换为 Laravel 查询构建器语法。任何帮助。谢谢。

SELECT c.id, c.name, c.price
FROM cars c  , garage g
WHERE (g.name = 'main') AND (g.id= c.garage)

【问题讨论】:

到目前为止你尝试了什么? 给我们一些你尝试过的事情的例子,以及这应该如何工作......因为从我的角度来看,即使是查询看起来也有点阴暗。 【参考方案1】:
\DB::table('cars')
   ->join('garage', 'garage.id', '=', 'cars.garage')       
   ->where('garage.name', 'main')

上面解决了车库和汽车部分,但您从未指定别名为 p 的内容。如果 p 是不同的表,那么您需要向join() 添加另一个调用并进行以下操作

 \DB::table('cars')
   ->join('garage', 'garage.id', '=', 'cars.garage')
   //<Other table join goes here for table aliased to p>
   ->where('garage.name', 'main')
   ->select(['p.id', 'p.name', 'p.price'])
   ->get();

【讨论】:

以上是关于将 mysql 查询转换为 laravel 查询生成器的主要内容,如果未能解决你的问题,请参考以下文章

如何将此 MySQL 查询转换为 Laravel?

如何将此查询从SQL(mysql)转换为Eloquent(Laravel)

需要将查询转换为 Eloquent Model laravel

我想将 MySQL 查询转换为 Laravel Eloquent / Laravel ORM

将子选择 sql 查询转换为 laravel 查询

如何将许多语句 mysql 转换为 laravel eloquent?