複数テーブル結合
複数テーブル結合 ステップは、ビジュアルな 結合グラフデザイナー を使用して、1回の操作で多数(最大32個)のテーブルを結合します。2テーブルの結合ステップを複数連結するパターンの代わりに使用できます。テーブルを追加し、列間に結合を描画し、結合ごとに結合タイプと条件を選択して、出力列をマッピングします。エディターには3つのタブがあります: Tables & Joins、出力列、Post-Join Filter。
詳しい手順については、複数テーブル結合ステップガイドを参照してください。
- テーブルを追加 — ソーステーブルを列のカードとしてキャンバスに配置します。各テーブルには エイリアス(
alias.columnとして使用)があり、文字またはアンダースコアで始まる必要があり、SQLキーワードは使用できません。 - ターゲットテーブル — 結合結果の書き込み先のテーブルです。存在しない場合は作成されます。
- 動的 — ソースまたはターゲットを選択する代わりに、参照として指定します。テーブル名、プロジェクトパス(
/03 Results/FACT_GL)、または実行時に解決される{variable}トークンを含むいずれかです。動的なソースの列は設計時に読み取れないため、サイドパネルで手動で入力します。 - 結合を描画 — 一方のテーブルの列のドットから、もう一方のテーブルの列へドラッグして結合を作成します。オプションの ラベル でエッジに名前を付けられます。
- 結合前フィルター — 結合の前に適用される、テーブルごとのフィルターです。
- サーバーから再取得 — テーブルカードの列を最新のカタログから更新します。
- レイアウトを整理 / 全体を表示 — グラフを自動配置するか、全体が収まるようにズームします。パンとズームは手動でも行えます。
- 元に戻す / やり直し / 履歴 — 編集内容を順に戻したり、確認したり、復元したりします。
- 列をフィルター… — テーブルカードに表示される列を絞り込みます。
- エクスポート — 結合図をSVGとしてダウンロードします。
| タイプ | 保持される行 |
|---|---|
INNER |
結合されたテーブル間で一致する行。 |
LEFT |
左のテーブルのすべての行と、右のテーブルの一致した行。 |
FULL |
両方のテーブルのすべての行。 |
CROSS |
行のすべての組み合わせ(条件は使用できません)。 |
クロス結合以外の各結合には、AND / OR で組み合わせた1つ以上の条件があり、演算子として =、<>、<、<=、>、>=、BETWEEN、IS NULL、IS NOT NULL、IN、NOT IN、LIKE、NOT LIKE を使用できます。
条件では、Build Plant や Cust (Id) のように、名前にスペースや句読点を含む列を指定できます。その列は、その入力に存在している必要があります。二重引用符、バッククォート、バックスラッシュ、または制御文字を含む名前は拒否されます。
BETWEEN では、入力のエイリアス、ドット、列の順に記述した境界値(cust.Max Id)は、その入力の列として読み取られます。それ以外の境界値は、ドットのないエイリアス名だけの場合も含め、リテラルテキストとして扱われます。そのため、入力にエイリアス cust がある場合の cust.2024 のように、エイリアスとドットで始まるテキストの境界値は、列として読み取られ、存在しないと報告されます。
出力列 タブで、結果の列をマッピングします。必要に応じて、名前の変更、データ型の設定、集計を行います。同じ名前の列には、競合を避けるために、ソースのエイリアスが自動的にプレフィックスとして付けられます。
各行は、次の3つのフィールドのうちちょうど1つから値を取得します。複数、または1つも設定しない場合は拒否されます。
| 種類 | フィールド |
|---|---|
| ソース列 | ソースエイリアス(所有するキャンバスのエイリアス)と ソース(alias.column)。両方が必須です。 |
| 定数 | 定数 — すべての行で同じ固定値。 |
| 式 | 式 — 任意のキャンバスのエイリアスを alias.column として参照できるSQLAlchemy式。 |
- キャンバスから選択… — キャンバス上のすべてのソースから列を選択します。
- すべてのソース列を追加 — すべてのソースのすべての列を追加します。
- 式の列を追加 — 式の行を追加し、式エディターを開きます。
Post-Join Filter タブでは、結合結果に対して、書き込み前に適用するオプションのフィルター(SQLの HAVING に相当)を、同じ式エディターで編集できます。出力列は result.column_name として参照します。ここではソースのエイリアスは対象外です。
実行時に指定された列
Section titled “実行時に指定された列”実行時に指定された列も引き継ぐ を選択すると、ステップが列挙していないソース列がすべて、ステップの実行時にテーブルにある状態のまま変更されずに渡されます。ピボットなど、名前がデータによって決まる列を前のステップが作成する場合、ステップの作成時にそれらを列挙できないため、このオプションを使用します。オフのままにすると、列挙した列だけが書き込まれます。
- 結合グラフはツリーです。各テーブルは、ちょうど1つのエッジを通して結果に結合され(循環はありません)、テーブルを自分自身に結合することはできません。
- 設定は、ステップの保存時と実行時の両方で検証されます。エラーがあると、問題のあるテーブルまたは結合に ⚠ マークが付き、保存に失敗すると最初の問題があるタブに切り替わり、問題へ移動 で必要に応じてそこへ移動できます。出力列の式とPost-Join Filterは保存時にチェックされます。実行時に指定された列を引き継ぐ結合では、保存時の式のチェックはスキップされ、ステップの実行時にチェックされます。