2017-02-22 38 views
0

Я уверен, что это просто, но это был тяжелый день: У меня есть таблица данных, как показано ниже. У меня есть список идентификаторов атрибутов и вам нужно получить отдельный ProductID, который соответствует всем выбранным атрибутам.MSSQL, выбрав отдельный идентификатор на основе набора параметров

ProductID AttributeID 
1   2 
1   3 
1   5 
2   2 
2   3 
2   7 

В качестве примера я хочу отчетливое идентификатор продукта, который соответствует атрибуты 2, 3 и 5.

Какой самый оптимальный способ сделать это?

ответ

1

с использованием count(distinct) = n где n - количество элементов в списке where AttributeId in().

select ProductId 
from t 
where AttributeId in (2,3,5) 
group by ProductId 
having count(distinct AttributeId)=3 
+0

Да, спасибо! Кажется, это работает отлично! – amglori

+0

@amglori Счастливые помочь! – SqlZim

Смежные вопросы