2015-07-13 110 views
1

我在做博客。我有兩張桌子,一張爲posts,另一張爲categories顯示有帖子數量的類別

我想顯示每個類別中的類別名稱,類別日期和帖子數量。我有問題要顯示每個類別的帖子數量。 在posts表我有一個名爲cat_id列等於category.id

我有這2個MySQL查詢:

mysql_query("select Count(posts.id) as NumberOfPosts, cat_id from posts group by cat_id"); 

而且

mysql_query("select name, date from categories"); 

我不知道如何有結合將這兩個查詢合併爲一個查詢。我使用PHP。

+0

來吧。需要更多努力。 – Strawberry

回答

0

你可以使用一個join

SELECT name, date, NumberOfPosts 
FROM categories c 
JOIN (SELECT cat_id, COUNT(*) AS NumberOfPosts 
     FROM  posts 
     GROUP BY cat_id) p ON c.id = p.cat_id 

編輯:
要包括類別,有沒有職位,你可以使用一個left join代替普通join。你只需要使用​​3210處理null是你會得到了NumberOfPosts,例如:

SELECT  name, date, COALESCE(NumberOfPosts, 0) AS NumberOfPosts 
FROM  categories c 
LEFT JOIN (SELECT cat_id, COUNT(*) AS NumberOfPosts 
      FROM  posts 
      GROUP BY cat_id) p ON c.id = p.cat_id 
+0

以及如何回顯cat_id和NumberOfposts? – user3740970

+0

非常感謝。這是工作,我只需要在查詢的開頭添加一個'id' - 然後查詢看起來像這樣:SELECT ID,name,date,NumberOfPosts FROM categories c JOIN(SELECT cat_id,COUNT(*)AS NumberOfPosts FROM posts GROUP BY cat_id)p ON c.id = p.cat_id – user3740970

+0

但是,該查詢僅顯示包含帖子的類別。如果某個類別剛剛添加並且有0個帖子,該怎麼辦?有什麼方法可以顯示它們嗎? – user3740970

相關問題