Semi Join
セミジョインは、内部表に一致する行が存在する外部表の行だけを返す結合で、内部表の列は返さない。EXISTS サブクエリの最適化に使われる。
目的
EXISTS/IN サブクエリを最適化し、不要なデータ転送や結合を避けることを目的とする。
メカニズム
外部表の行が内部表に一致するかどうかだけを確認し、一致すれば外部表の行を出力する(内部のデータは付けない)。実装では内部表の結合列を重複除去してから外部表を探索する。通常の結合より出力も中間結果も少なくて済む。
ユースケース
- サブクエリの最適化
- EXISTS の最適化
- テーブル結合の最適化