相関結合について
相関結合は、相関subquery を処理するために開発された結合方式のクラスで構成されています。相関結合の一部のタイプは、次のさらに一般的な結合タイプを拡張したものです。
- 包含マージ結合
- 排他マージ結合
- 包含プロダクト ジョイン
- 排他プロダクト ジョイン
それぞれのタイプごとに、右のテーブルはグループのコレクションになり、左の行は各グループごとに1回戻すことができます。
相関結合ファミリーの他のメンバーは固有のタイプです。
次の図は、一般的な相関結合プロセスを表わしています。
相関結合のタイプ
相関結合の各基本タイプには、内部結合バージョンと外部結合バージョンがあります。
- 相関包含マージ結合 相関包含マージ結合は、グループの処理と次の追加の考慮事項を除けば、単純な包含マージ結合(包含マージ結合のプロセスを参照)と似ています。
- 右のテーブルの行は各グループ内の行ハッシュによってソートされます。
- 左のテーブルの各行は右の行の各グループとマージ結合しなければなりません。
この結合には、次の2つの形式があります。
- 相関包含高速パス マージ結合
- 相関包含低速パス マージ結合
- 相関排他マージ結合 標準排他マージ結合の相関バージョンです。排他マージ結合を参照してください。この結合には、次の2つの形式があります。
- 相関排他高速パス マージ結合
- 相関排他低速パス マージ結合
- 相関包含積結合
標準包含積結合の相関バージョンです。包含積結合のプロセスを参照してください。
- 相関排他積結合
標準排他積結合の相関バージョンです。排他プロダクト ジョインを参照してください。
- EXISTS結合
右のテーブルの行が存在する場合、条件を満たす左のテーブルのすべての行を返します。
- NOT EXISTS結合
右のテーブルに行がない場合、条件を満たさない左のテーブルのすべての行を返します。