Product Category と ProductCategory の 3 つのテーブルがあります。
製品表:
ProductID ProductName
1 P1
2 P2
3 P3
カテゴリ表:
CategoryID CategoryName
1 C1
2 C2
3 C3
製品カテゴリ:
ProductID CategoryID
1 1
1 2
1 3
2 3
3 1
3 2
複数のカテゴリに該当する製品を返すクエリが必要です。上記のテーブル データに基づくと、結果は次のようになります。
ProductID ProductName
1 P1
3 P3
そこで、以下のように、複数の CategoryID を持つすべての ProductID を取得するクエリを作成しました。
select ProductID,count(CategoryID)
from ProductCategory
group by Productid
having count(CategoryID)>1)
しかし、以下のクエリを使用して製品の詳細を表示しようとすると、エラーが発生します。
select *
from Product
where ProductID in (
select ProductID,count(CategoryID)
from ProductCategory
group by Productid
having count(CategoryID)>1))
私のクエリは間違っていますか?複数のカテゴリに該当する必要な製品の詳細を取得するにはどうすればよいですか?