我正在尝试改变某些东西以使其适合我。我认为我的问题对于了解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)。
希望有人可以提供帮助。谢谢!
答案 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