2016-06-07 77 views
5

所以在我的數據庫中我有表website_tags,其中包含id, title等,也有我的表websites,具有類似的結構。還有一個名爲assigned_tags的表,它包含標籤和網站之間的關係,所以它包含關係id, tag_id and website_idLaravel查詢生成計數加入

我需要的是將這些表格與查詢連接起來,我需要獲取所有標籤並統計這些標籤的使用次數。因此,例如website_tags包含以下信息:

1: men 
2: women 

,並分配標籤包括像ID:TAG_ID:website_id

1: 1: 1 
2: 1: 2 
3: 2: 2 

所以我會得到這個標籤「男人」在2個網站和標籤被用來「 women'用於1. 我該如何構建查詢? 現在我有:

DB::table('website_tags') 
->join('assigned_tags', 'website_tags.id', '=', 'assigned_tags.tag_id') 
->select('website_tags.id as id', 'website_tags.title as title', DB::raw("count(assigned_tags.tag_id) as count"))- 
>get(); 

但這是錯誤的,這只是查詢計數到assigned_tags行。

回答

10

你必須定義groupBy這樣的查詢就會知道如何反正指望它(就像在常規的SQL)

嘗試是這樣的

DB::table('website_tags') 
->join('assigned_tags', 'website_tags.id', '=', 'assigned_tags.tag_id') 
->select('website_tags.id as id', 'website_tags.title as title', DB::raw("count(assigned_tags.tag_id) as count")) 
->groupBy('website_tags.id') 
->get(); 
+0

燁,這樣做一分鐘前,感謝: ) – Coffee