ジョインの条件の追加

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  マッピングのデザイン > データのジョイン >

ジョインの条件の追加

条件に従い2つの構造のアイテムを組み合わせることによりジョインは作動します。このため、ジョインには常に条件が必要になります。下に示されるようにジョインの条件を追加するには複数の方法があります。

 

メモ:SQL モード内でデータベーステーブルがジョインされると、MapForce は、テーブル間で検出された外部キーリレーションシップをベースにして、ジョインの条件を自動的に作成します。自動的なジョインの条件が起こるには、データベーステーブルが MapForce コンポーネント上で親子関係内に存在する必要があります (すなわち、1つのテーブルが「親」または「子」で、他のテーブルがコンポーネント上に存在する必要があります)。 サンプル: SQL モード内のテーブルのジョインを参照してください。

 

アプローチ 1: コンポーネント プロパティからジョインの条件を追加する

1.マッピング上で、2つ以上の構造 (または、データベーステーブル) がジョインコンポーネントに接続されている必要があります。このサンプルで説明されているジョインコンポーネントは、フォルダー <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\ 内で使用することのできる JoinPeopleInfo.mfd マッピングの一部です。 詳細に関しては、 サンプル: XML 構造のジョイン を参照してください。
2.ジョインコンポーネントで、 「ジョインの条件の定義」 ( mf_ic_join_key ) ボタンをクリックします (または、コンポーネントのヘッダーを右クリックし、コンテキストメニューから プロパティ を選択します)。
3.左の構造からアイテムを選択し、その他を右の構造から選択します (これは、このペアの比較が true を返すと、左と右の構造がジョインされます)。

mf_map_JoinPeopleInfo3

複数の条件を追加する必要がある場合、をクリックして、「条件の追加」新しいアイテムのペアを選択します。例えば、上のイメージは内では、2つのジョインの条件が定義されています:

 

1.構造 1 内の FirstName は構造 2 内の FirstName と等価である必要があります。
2.構造 1 内の LastName は、構造 2 内の LastName と等価である必要があります。

 

ジョインの条件を削除するには、 横の 「削除」 mf_join_condition_delete ボタンをクリックします。

 

メモ:複数のジョインの条件が存在する場合、 2つの構造がジョインされるためには、全ての条件が満たされている必要があります。すなわち、複数の条件は理論的な AND オペレーションによりジョインされていることを意味します。また、マッピングから追加された任意の条件も含んでいます (次を参照してください: 下のアプローチ 2 )。
2つ以上の構造がジョインコンポーネントに接続されている場合、これらの追加構造は、「構造 2」の下のドロップダウンリストに表示されます。このような追加構造をドロップダウンリストから選択すると、左側のペインに、ジョインコンポーネント前の全ての構造が表示されます。この方法で、任意の複数の構造間のジョインの条件を定義することができます。例に関しては、以下を参照してください サンプル: CSV レポートを複数のテーブルから作成する
各構造内のアイテムのデータ型をビューするためには、「型の表示」 チェックボックスを選択します。基になるスキーマ (またはデータベース) 内に情報が存在することが前提で、「注釈の表示」 オプションは、アイテムの追加情報を表示します。両方のチェックボックスが選択されていると、レイアウトは、注釈と型の両方を表示するために調整されます。例:

 

アプローチ 2: マッピングからジョインの条件を追加する

マッピング上で、 ブール値を生成するコンポーネントを追加し、 condition アイテムの入力にブールの出力を接続します。例えば、 equal 関数は、一部のマッピングアイテムの値を比較し、ジョインコンポーネントの condition アイテムの入力として、ブール値の結果を提供します。

mff_join_external

メモ:ジョインコンポーネント プロパティ (アプローチ 1) で条件が定義されていない場合、ジョインコンポーネントの condition アイテムが接続されている必要があります (アプローチ 2)。

 

アプローチ 3: 複合型のアプローチ

同じマッピング内で、  コンポーネント プロパティ (アプローチ 1) 内のジョインの条件を定義し、マッピング (アプローチ 2) からの1つと結合することができます。しかしながら、SQL モードを使用して、データベーステーブルをジョインする場合は、条件はアプローチ 1 を使用して定義される必要があります (次を参照してください: SQL モード内のジョインについて)。


(C) 2019 Altova GmbH