アイテム間の参照を含む単純なテーブルがあります。別の表では、項目はグループ化されています。各項目は任意の数のグループに含めることができます。SQL内の同じIN副選択を削除します
例:
Items:
ItemID | ItemName
------------------
1 | Item 1
2 | Item 2
3 | Item 3
4 | Item 4
Groups:
GroupID | ItemID
-----------------
1 | 1
1 | 2
1 | 4
2 | 2
2 | 3
References:
RefSourceItem | RefTargetItem
-------------------------------
1 | 2
2 | 3
2 | 4
は今、私はつまり、ソースとターゲットが同じグループに両方とも、特定のグループ内のすべての参照を選択します。私が思いついたのステートメントはこれです:私は少し問題を見つける何
SELECT * FROM References
WHERE RefSourceItem IN (SELECT ItemID FROM Groups WHERE GroupID = 1)
AND RefTargetItem IN (SELECT ItemID FROM Groups WHERE GroupID = 1)
私は2つの同一の副選択を持っているということです。
私の質問
2つの列を同じ副選択に制限するより良い方法はありますか?
あなたのアプローチは結構です。 –