副問い合わせの結果が存在する場合のみ検索対象とするには、EXIST句を使用します。
サンプル
例)TBL_AからTBL_Bに存在する行のみ抽出する
| col1 | col2 | 
|---|---|
| 001 | a | 
| 002 | b | 
| 003 | c | 
| 004 | d | 
| 005 | e | 
| col1 | col2 | 
|---|---|
| a | 100 | 
| c | 35 | 
| e | 80 | 
| 
					 1 2 3 4 5 6  | 
						SELECT * FROM TBL_A WHERE   EXISTS(     SELECT 'X' FROM TBL_B WHERE TBL_A.col1 = TBL_B.col1   ) ;  | 
					
- SQL*Plus
 - col1 col2 ----- ----- 001 a 003 c 005 e
 
解説
- IN句でも同様の抽出はできますが、EXIST句を使用した方がパフォーマンスが良いです。