2012-05-03 12 views
2

私はこの例を簡略化しましたが、この例は理にかなっていれば十分です。Oracleクエリ自己結合?

私は、次の...

ITEM GROUP 
---- ----- 
A  1 
B  1 
C  1 
D  2 
E  2 
F  3 
G  4 

としてテーブルを持っている場合は...と私は項目A、B、D及びFを提供しています、私はそれらを返しますクエリをcontructしたいと思います関連するグループCとEの追加項目の詳細と同じです。

私はある種の内部結合を行うことができるはずですが、どうやってそれを行うことができるのか分かりません。これが環境の制約のために単一のクエリで実行された場合は最適です。

ありがとうございます!

+0

としてそれを書くことができますか? –

答えて

5

私が正しくあなたを理解していれば、これはうまくいくはずです。

SELECT item, 
     group_num 
    FROM table_name 
WHERE grroup_num IN (SELECT group_num 
         FROM table_name 
         WHERE item IN ('A', 'B', 'D', 'F')) 

また、あなたが期待しているものを結果EXISTS

SELECT item, 
     group_num 
    FROM table_name a 
WHERE EXISTS(SELECT 1 
       FROM table_name b 
       WHERE a.group_num = b.group_num 
        AND b.item IN ('A','B','D','F')) 
+1

パーフェクト。これは私が探していたものでした。私の実際の実装ははるかに複雑ですが、問題を簡単な質問と解決策に掘り下げて実際に差をつけました。助けてくれてありがとう! – McArthey