3

私はそれが私のために働くように何かを変更しようとしています。私の質問は、SQL を知っている人にとっては非常に簡単に答えることができると思います。次の表があります(2列):

entry_id | cat_id
5        | 3
6        | 3
7        | 3
7        | 5
7        | 6
8        | 5
9        | 3
9        | 5

ここで、cat_id 3 と 5 にあるすべての entry_id をカウントしたいと思います (両方のカテゴリにある必要があります)。結果として「2」を取得するにはどうすればよいですか (エントリ 7 と 9 の合計は 2 になります)。

誰かが助けてくれることを願っています。ありがとう!

4

1 に答える 1

5

この問題は時々呼ばれますRelational Division

SELECT  COUNT(*) totalCOunt
FROM
(
    SELECT  entry_id 
    FROM    tableName
    WHERE   cat_id IN (3, 5)
    GROUP   BY entry_id
    HAVING  COUNT(DISTINCT cat_id ) = 2
) s
于 2013-02-27T15:13:43.027 に答える