我有这个查询:
SELECT * FROM blog
LEFT JOIN (
SELECT blog_id, AVG(value) as blog_rating FROM blog_ratings
GROUP BY (blog_id)
) T ON T.blog_id = blog.id;
我不知道该如何用Eloquent编写。
例如:
Blog::select("*")->leftJoin( /* Here goes derived table */ )->get()
我该怎么做?
我个人只是使用流畅的查询构建器,尝试一下,看看它是如何工作的:
DB::table('blog')
->select('*')
->leftJoin(DB::raw('(SELECT blog_id, AVG(value) as blog_rating FROM blog_ratings
GROUP BY (blog_id)
) as T'), function ($join) {
$join->on ( 'T.blog_id', '=', 'blog.id' );
})
->get();
您可以随时互换->get()
的->toSql()
倾倒了查询,如果你看到任何错误调整。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句