2013-07-09 68 views
0

我正試圖製作一個搜索過濾器,用於顯示具有項目數量的類別。我有一個類別/職位關係表如下MySQL分類計數

entry_id | cat_id 
------------------ 
    1 | 1 
------------------ 
    1 | 3 
------------------ 
    2 | 1 
------------------ 
    3 | 2 
------------------ 
    3 | 3 
------------------ 

我想要做的是顯示每個類別的帖子總數。我已經manged到acheive其中顯示輸出一定的總絕對的解決方案如下:

SELECT count(entry_id) as count FROM cat_rel_table WHERE cat_id = $i; 

什麼,我試圖acheive是計算有多少項目被歸類在所有「活躍」的更多相對計數類別。所以我想要指定多個cat_id。它會統計在這些類別下分類的項目數量。一些沿線的:

SELECT count(entry_id) as count FROM cat_rel_table WHERE cat_id IN(1, 3); 

但只有在條件下,一個類別有一個項目也屬於另一個活動的類別。

+0

你如何確定一個類別是否「活躍」? – Andrew

回答

2

使用GROUP BY。

SELECT count(entry_id) as count, cat_id 
FROM cat_rel_table 
WHERE cat_id IN(1, 3) 
GROUP BY cat_id 

然後,您可以修改該IN()子句以過濾「活動」類別。