Itemテーブル、Categoryテーブル、およびキーのペアである多対多のItemCategoryテーブルを含むデータベース(NexusDB(おそらくSQL-92準拠))があります。ご想像のとおり、アイテムは複数のカテゴリに割り当てられています。
すべてのエンドユーザーに、次のすべてのアイテムを選択してもらいたい
ItemID | カテゴリ
ID--------------------------------
01 | 01
01 | 02
01 | 12
02 | 01
02 | 02
02 | 47
03 | 01
03 | 02
03 | 14
など...
カテゴリX、Y、およびZに割り当てられているが、カテゴリPおよびQには割り当てられていないすべてのItemIDを選択できるようにしたい。
たとえば、上記のデータの例では、カテゴリ01または02に割り当てられているが、12ではないすべてのアイテムを取得したいとします(アイテム02および03を生成します)。次のようなもの:
SELECT ItemID WHERE(CategoryID IN(01、02))
...そしてそのセットからSELECTItemIDWHERE NOT(CategoryID = 12)を削除します
これはおそらくかなり基本的なSQLの質問ですが、現時点では困惑しています。どんな助けでもありがたいです。