3

我正在尝试更改某些内容以使其对我有用。我认为对于了解 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)。

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

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 回答