メイン コンテンツをスキップする 補完的コンテンツへスキップ

Join

join プレフィックスは、ロード済みのテーブルを名前が付いた既存テーブルまたは直前に作成されたデータ テーブルと結合します。

データを結合すると、追加の項目または属性のセット (ターゲット テーブルにまだ存在しないもの) によってターゲット テーブルが拡張されます。ソース データ セットとターゲット テーブルの間の共通の項目名は、新しい入力レコードを関連付ける方法を決定するために使用されます。これは一般に「自然結合」と呼ばれます。Qlik 結合操作では、結合の関連付けの一意性と使用される結合の種類に応じて、結果のターゲット テーブルのレコードが開始時よりも増減する可能性があります。

結合には次の 4 つのタイプがあります。

左結合は、最も一般的な結合タイプです。たとえば、トランザクション データ セットがあり、それを参照データ セットと組み合わせたい場合、通常は Left Join を使用します。最初にトランザクション テーブルをロードし、次に Left Join プレフィックスを介して既にロードされているトランザクション テーブルに結合しながら、参照データ セットをロードします。Left Join は、すべてのトランザクションをそのまま保持し、一致が見つかった補足参照データ項目を追加します。

一致する関連付けがある結果のみを対象とする 2 つのデータ セットがある場合は、Inner Joinの使用を検討してください。これにより、一致するものが見つからない場合、ロードされたソース データとターゲット テーブルの両方からすべてのレコードが削除されます。その結果、結合操作が行われる前よりもターゲット テーブルのレコードが減少する可能性があります。

ターゲット レコードとすべての着信レコードの両方を保持する必要がある場合は、Outer Joinを使用します。一致が見つからない場合、結合の反対側の項目は未入力 (null) のままですが、レコードの各セットは引き続き保持されます。通常、外部結合には実用的な用途はほとんどありません。

この結合タイプは、ロードされるすべてのレコードを保持しながら、結合の対象となるテーブル内のレコードを、着信レコードに関連付けの一致があるレコードのみに減らします。これはニッチな結合タイプであり、事前にロードされたレコードのテーブルを必要なサブセットにトリミングする手段として使用されることがあります。

type キーワードを省略した場合、Inner Join が既定の結合タイプになります。

さまざまなタイプの結合操作からの結果セットの例

さまざまなタイプの結合操作からの結果セットの例。各操作の前後にデータ テーブルが表示されます。
情報メモ結合操作のソースとターゲットの間に共通の項目名がない場合、結合はすべての行のデカルト積になります。これは「クロス結合」と呼ばれます。

「クロス結合」操作による結果セットの例

クロス結合操作 (任意のタイプの結合操作を含むことができます) の後の出力と入力データの前後の比較。

構文:  

[inner | outer | left | right ]Join [ (tablename ) ]( loadstatement | selectstatement )

引数
引数 説明
tablename 名前が付いたテーブルが、ロード済みのテーブルと比較されます。
loadstatementまたはselectstatement ロード済みテーブルの LOAD または SELECT ステートメントです。

これらのトピックは、この関数を使用するのに役立つかもしれません。

関連トピック
トピック 説明
Join と Keep を使用したテーブルの結合 を使用したテーブルの結合 このトピックでは、データ セットの「結合」と「保持」の概念について詳しく説明します。
Keep Keep ロード プレフィックスは Join プレフィックスに似ていますが、ソース データセットとターゲット データセットを結合しません。代わりに、採用された操作のタイプ (内側、外側、左、または右) に従って各データセットをトリムします。

例 1 - 左結合: 参照データ セットを使用してターゲット テーブルを強化する

例 2 – 内部結合: 一致するレコードのみを組み合わせる

例 3 – 外部結合: 重複するレコード セットの結合

例 4 – 右結合: セカンダリ マスター データセットによるターゲット テーブルのトリミング

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。