MS SQL Server 2008 では、次のようなテーブルがあります。
CREATE TABLE SomeTable
(
MajorID int NOT NULL REFERENCES ...,
MinorID int NOT NULL,
Value int NOT NULL REFERENCES ...,
PRIMARY KEY(MajorID, MinorID)
)
(Value0、Value1、...) のセットもあります。目標は、少なくとも 1 回リストされているセットのすべての値を持つすべての MajorID を見つけることです。このタスクでは MinorID は重要ではありません。セットのサイズは事前定義されておらず、セットはクライアント アプリケーションで生成されます。その最大サイズには妥当な制限があります (たとえば 64)。
どの SQL を使用すればよいですか?
例:
MajorID MinorID 値 1 0 4 1 1 1 1 2 3 1 3 4 1 4 4 1 5 5 1 6 5 2 0 1 3 0 1 3 1 4
値リスト (1, 4) の場合、答えは (1, 3) です。MajorID 1 と 3 にはそれぞれの値が少なくとも 1 回リストされているためです。