0
は*キー同じテーブルのオブジェクトをクエリするときに、ネストされたSELECTクエリを統合しますか?
ID* GROUPID* ATTR1 ATTR2 (...additional columns)
-- ------- ----- -----
1 100 45 89
2 100 37 27
3 101 69 19
4 102 37 22
され、ATTR1とATTR2の値のペアを与えられたところ、私は私のクエリはに属しているすべての行のリストを返すようにしたい、私は表1は、以下と同様に構成テーブルを持っていると言います特定のATTR1およびATTR2のGROUPIDのGroupID。 ATTR1とATTR2の各ペアがゼロまたは1つのGroupIDを持つと仮定します。
ネストされたクエリを持たないようにこのクエリを定式化する方法はありますか?ここに私がこれまでに持っているクエリです:
SELECT [GROUPID], [ATTR1], [ATTR2]
FROM [TABLE1]
WHERE [GROUPID] = (
SELECT TOP 1 GROUPID
FROM [TABLE1]
WHERE (ATTR1 = @attr1) and (ATTR2 = @attr2)
);
サブクエリは外部クエリAFAIKに関連付けられていないため、思ったより速く実行される可能性があります。 –
1つのカラム 'groupid'を主キーとしてマークしましたが、データには同じグループID値を持つ2つの行が含まれています。つまり、主キーではありません。おそらく、さらにいくつかの行のデータを表示し、主キーが何であるかを明確にし、表示するサンプルデータから期待される出力を表示する必要があります。 –
そうです、主キーを形成する別の列(ID)があります。私はゴードンが私の質問に答えてくれたとは思うが、質問を更新した。 –