SQL-запрос с использованием IN, но где все результаты должны иметь одинаковый идентификатор группировки - PullRequest
0 голосов
/ 08 марта 2011

Не знаете точно, как задать этот вопрос, чтобы извиниться за неуклюжую формулировку, обычно, когда я знаю, как правильно описать проблему, я могу использовать поиск по сайту, чтобы найти ее, или Google и т. Д.

В любом случае,достаточно простая проблема - я запрашиваю таблицу ссылок / соединений с массивом переменных AttributeIds, например, идентификаторами 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 ]

1 голос
/ 08 марта 2011
SELECT ProductSetID, COUNT(*) AS CountOfMatchingRows
From MyTable
WHERE AttributeId IN (14,17 )
GROUP BY ProductSetID
HAVING COUNT(*) = 2
0 голосов
/ 08 марта 2011

Звучит так, будто вы хотите выполнить реляционное деление. На Simple-Talk закончена хорошая статья о различных методах. http://www.simple -talk.com / sql / t-sql-программирования / разделить-мы-стоять-sql-из-реляционного деления /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...