2017-11-22 1 views
0

私はLeftJoinで作業していましたが、どうしたらいいのでしょうか。Laravel 5.5の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_idname、COUNT(含まblog_idをカウントしています現在category_id

1つの言葉では、名前の横にカテゴリの数を取得したいと思います。 ありがとうございました!

EDIT:実際には、私はJoinをまったく必要としないことを実感しました。私は関数にこの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

私は本当によく分かりません。この関数はModelクラスで次のようになります:protected $ table = 'blog_category'; – Nicox

+0

実際に私は参加する必要はありません、投稿を読む編集 – Nicox

答えて

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(); 
} 
0

使用https://laravel.com/docs/5.5/eloquentとブログとブログのカテゴリのモデルを作成し、その後、あなたは$カテゴリ= $ blog->カテゴリを行うことができます

関連する問題