2

私は3つのテーブルを持っています:

アイテム

id   name   etc
--------------------
1    Rex   
2    Fido
3    Geoff

カテゴリー

id   name
------------
1    Dogs
2    Humans
3    Mammals

category_item

category_id  item_id
--------------------
1            1
3            1
1            2
3            2
2            3
3            3

カテゴリIDの配列もあります。配列内のすべてのカテゴリに関連するアイテムの数を数えたいと思います。

例えば...

Category_ids    Result
----------------------
1,2             0
2,3             1
1,2,3           0

私がこれを理解するとき、私は自分自身を蹴るつもりだとかなり確信しています。

4

1 に答える 1

2

以下のクエリを試してください..

select count(*) AS Result from (
         SELECT count(item_id) FROM category_item
                             WHERE 
                            category_id in (2 ,3)
                            GROUP by item_id 

                              HAVING count(*) = 2
                             ) AS temp

このクエリ ではput count(*) value equal to total number of category_id for example if you are checking for category_ids 1,2,3 then put having count(*) = 3. このクエリでは、category_id 1 と 2 を指定すると仮定すると、item_id の存在の総数が取得されます

このクエリがお役に立てば幸いです。

ありがとう

于 2012-05-17T11:59:01.013 に答える