ご使用のブラウザはJavaScriptをサポートしていません。このヘルプ・ページを正しく表示するにはJavaScriptが必要です。 ジョイナ演算子
ヘッダーをスキップ
前へ
前へ
 
次へ
次へ

ジョイナ演算子

ジョイナ演算子は、異なるカーディナリティを持つ様々なソースの複数の行セットを結合し、単一の行セットの出力を生成します。ジョイナ演算子は、内部結合、外部結合、等価結合および非等価結合に使用できます。また、「マッピングの自己結合の追加」で説明するように、フィルタ演算子を使用して自己結合を作成することもできます。

joiner.gifの説明が続きます
画像joiner.gifの説明

ジョイナ演算子は、各ソース行セットの列値を他の1つ以上の行セットに関連付けるブール条件を使用します。ジョイナ演算子により、生成されたSQL問合せにWHERE句が挿入されます。Oracle 9i以上のリリースで実行している場合、ANSI完全外部結合がサポートされています。結合の詳細は、Oracle Database SQL言語リファレンスを参照してください。

行セット間の結合を定義するには、次を定義する必要があります。


注意:

データ・ソースとジョイナの間にある演算子により、複合SQLまたはPL/SQLを生成できます。


入力行セットが外部キーを介して関連付けられている場合は、その関係を使用してデフォルトの結合条件が形成されます。このデフォルト条件を使用するか、または変更できます。ソースが外部キーを介して関連付けられていない場合は、結合条件を定義する必要があります。

結合問合せに使用する2つの表の結合条件を指定しなければ、2つの表のデカルト積が戻され、一方の表の各行が他方の表の各行と結合されます。

デフォルトの外部キーにより重複するWHERE句が生成される場合は、ジョイナ演算子により重複する句が削除されます。これは、結合条件で複数の外部キーを参照している場合に発生することがあります。たとえば、表T1の外部キーFK1が表T2の一意キーUK1を指し、表T2の外部キーFK2が表T1の一意キーUK2を指している場合、結合条件は次のようになります。

T1.A = T2.A AND T1.B = T2.B /*All instances of FK1 -> UK1 are reduced to one WHERE clause*/ AND
T2.B = T1.B AND T2.C = T1.C /*All instances of FK2 -> UK2 are reduced to one E-Business Suite clause*/

この場合、ジョイナ演算子により次の結合条件が生成されます。

T2.A = T2.A AND T1.B = T2.B AND T2.C = T1.C

属性をジョイナ演算子の入力グループにマップする前に結合条件を定義すると、生成済コードでは結合条件がリテラルとして扱われます。属性はまだジョイナ演算子にマップされていないため、コード・ジェネレータではこれらの属性が認識されません。この問題を回避するために、最初にジョイナ演算子の入力グループをマップしてから、結合条件を定義することをお薦めします。

結合条件は、SQLコンテキスト内で定義されます。SAPソースの場合、ABAPコンテキスト内でSQLの結合条件を解析してABAPコードを生成できます。ABAPで可能なのは、定義済の外部キー関係での結合のみです。