2016-11-09 30 views
1

我有一個數據庫與下面的兩個表,用戶,POSTS我正在尋找一種方法來獲得有多少職位(postCount)的用戶有計數,如果一個用戶沒有任何職位postCount將等於零MySQL查詢找到每個用戶的帖子數

Users   Posts 
+----+------+ +----+---------+-----------+ 
| ID | Name | | ID | user_id | Name  | 
+----+------+ +----+---------+-----------+ 
| 1 | Bob | | 1 | 1  | Blargg... | 
| 2 | Jim | | 2 | 1  | Blargg... | 
| 3 | Jo | | 3 | 2  | Blargg... | 
+----+------+ +----+---------+-----------+ 

最後,我想是這樣的:

+----+------+ 
| ID | Count| 
+----+------+ 
| 1 | 2 | 
| 2 | 1 | 
| 3 | 0 | 
+----+------+ 

回答

3

試試這個:

SELECT u.ID, u.Name, COUNT(p.Name) 
FROM Users AS u 
LEFT JOIN Posts AS p ON u.ID = p.user_id 
GROUP BY u.ID, u.Name 
0
SELECT t1.ID, COUNT(*) AS `Count` 
FROM Users t1 
LEFT JOIN Posts t2 
    ON t1.ID = t2.user_id 
GROUP BY t1.Id 
0
select 
u.id, 
count(p.id) 
from users u 
left join posts p on p.user_id = u.id 
group by u.id 
order by u.id 
0

你應該離開加入了兩個表,以包括來自users所有條目,即使沒有帖子的用戶,那麼一個簡單的ORDER BY和集合函數來計算的職位:

select users.id, count(posts.id) from users left join posts on users.id = posts.user_id group by posts.user_id 
相關問題