0

アイテム数でカテゴリを表示する検索フィルターを作成しようとしています。次のようなカテゴリ/投稿関係テーブルがあります

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

私がやろうとしているのは、各カテゴリの投稿合計を表示することです。次のように、明確な合計が出力される絶対的な解決策を達成することができました。

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

私が達成しようとしているのは、すべての「アクティブな」カテゴリに分類されているアイテムの数を計算する、より相対的なカウントです。そのため、複数の cat_id を指定できるようにしたいと考えています。そして、これらのカテゴリの下に分類されたアイテムの数を合計してカウントします。これに沿った何か:

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

ただし、カテゴリに別のアクティブなカテゴリにも属するアイテムがあるという条件でのみ。

4

2 に答える 2

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()句を変更して、「アクティブな」カテゴリをフィルタリングできます。

于 2013-07-09T16:17:27.443 に答える
0

「Group By」句を探していると思います。

http://www.w3schools.com/sql/sql_groupby.asp

于 2013-07-09T16:18:20.350 に答える