所以我正在使用LeftJoin,但我不能这样做我想要它。
我有什么:
Table 1: Blog_Category
Contains: `category_id`, `name`
Table 2: Blog
Contains: `blog_id`, `category_id`, `title` .... etc.
我的构建,但不起作用:
public static function ShowAll() {
return self::leftJoin('Blog', 'Blog_Category.category_id', '=', 'Blog.title')
->selectRaw('Blog_Category.*, count(Blog.blog_id) as Counts')
->groupBy('Blog_Category.category_id')
->get();
}
我想得的是category_id
,name
,COUNT(计算包含当前category_id
的blog_id)
总之,我希望在名称旁边显示类别计数。 谢谢!
编辑:其实我刚刚意识到,我根本不需要加入。我需要将这个SQL变为函数:SELECT blog_category.category_id AS id,
blog_category.name AS name,
(SELECT COUNT(*) FROM blog WHERE blog.category_id = blog_category.category_id) AS count
FROM blog_category;
答案 0 :(得分:0)
使用https://laravel.com/docs/5.5/eloquent并为博客和博客类别制作模型,然后您可以执行$ category = $ blog-> category
答案 1 :(得分:0)
嗯,我用最简单的方法,用原始选择。
我在这里发布代码,对于那些遇到同样问题的人:
public static function ShowAll() {
return self::selectRaw('blog_category.category_id AS id, blog_category.name AS name, (SELECT COUNT(*) FROM blog WHERE blog.category_id = blog_category.category_id) AS count')->get();
}