2017-02-22 11 views
0

これは簡単ですが、荒い日でした: 私は以下のようなデータテーブルを持っています。私は属性IDのリストを持っており、選択されたすべてのAttributeIDと一致する個別のProductIDを取得する必要があります。一例として、 MSSQLがパラメータセットに基づいて異なるIDを選択しています

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

は、私は、属性2、3と一致する個別のプロダクトIDをしたい、と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