计算A类和A类中的项目B(MySQL)

时间:2013-02-27 15:12:16

标签: mysql sql count relational-division

我正在尝试改变某些东西以使其适合我。我认为我的问题对于了解SQL的人来说非常容易。我有下表(两列):

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)。

希望有人可以提供帮助。谢谢!

1 个答案:

答案 0 :(得分: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