【发布时间】:2015-01-24 16:37:08
【问题描述】:
我们都知道使用 Eloquent with('relation') 函数不是在执行 JOIN ,而是在执行另一个查询来获取关系。
有没有办法使用 JOIN 进行单个查询,这样我们就可以减少 MySQL 查询?
【问题讨论】:
标签: mysql join laravel eloquent relationship
我们都知道使用 Eloquent with('relation') 函数不是在执行 JOIN ,而是在执行另一个查询来获取关系。
有没有办法使用 JOIN 进行单个查询,这样我们就可以减少 MySQL 查询?
【问题讨论】:
标签: mysql join laravel eloquent relationship
是的,如果你想做左连接(使用->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
【讨论】:
据我所知,在使用 Eloquent 对象时不可能使用 JOIN。这就是 Eloquent 的工作方式——它不使用连接,它使用单独的查询来获取相关数据。所以如果你想使用连接,你将无法使用 Eloquent 对象。
【讨论】:
您可以在数据库中创建一个VIEW,然后在您的应用中创建一个模型。 VIEW 中更新的数据会在相关表中自动更新。可能是一种解决方法。
【讨论】: