副問い合わせの結果が存在する場合のみ検索対象とするには、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句を使用した方がパフォーマンスが良いです。