Laravel,使用JOIN加载关系

时间:2014-11-26 11:12:10

标签: mysql join laravel eloquent relationship

我们都知道使用 Eloquent with('relation')函数不会执行 JOIN ,但它会进行另一次查询来获取关系。 有没有办法使用 JOIN 进行单个查询,以便我们可以减少MySQL查询?

3 个答案:

答案 0 :(得分:1)

据我所知,在使用Eloquent对象时无法使用JOIN。这就是Eloquent的工作方式 - 它没有使用连接,它使用单独的查询来获取相关数据。因此,如果您想使用连接,您将无法使用Eloquent对象。

答案 1 :(得分:1)

您可以在数据库中创建 VIEW ,然后在您的应用中创建模型。 VIEW中的更新数据会在相关表格中自动更新。可能是一种解决方法。

答案 2 :(得分:0)

如果您想要进行左连接(使用->join()进行简单的内连接),是这样的事情。

 $query = DB::table('product');
 $query->leftJoin('user', 'product.seller_id', '=','user.user_id');
 return $query->get();

有关详细信息,请参阅查询构建器文档:http://laravel.com/docs/4.2/queries#joins