SQL查询使用IN但所有结果必须具有相同的分组ID

时间:2011-03-08 16:21:57

标签: sql grouping

确定如何将这个问题置于尴尬的措辞中,这通常是当我知道如何正确描述问题时,我可以使用网站搜索来查找它,或Google等。

无论如何,问题很简单 - 我正在查询带有可变数组AttributeIds的链接/联结表,例如ID 14和17.使用下表:

http://img220.imageshack.us/img220/5999/setattributecombo.gif

我想从这个查询返回的唯一有效结果是ProductSetId是相同的,所以不是'IN'我想要像

这样的东西
WHERE AttributeIds IN 14,17 AND ProductSetId is the same

在上面的例子中,唯一有效的结果是5,但如果我使用IN查询,我得到2,5,7作为结果。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

SELECT ProductSetID, COUNT(*) AS CountOfMatchingRows
From MyTable
WHERE AttributeId IN (14,17 )
GROUP BY ProductSetID
HAVING COUNT(*) = 2

答案 1 :(得分:0)

听起来你想要执行关系部门。 Simple-Talk上有一篇关于各种方法的好文章。 http://www.simple-talk.com/sql/t-sql-programming/divided-we-stand-the-sql-of-relational-division/