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

Join

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

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

video thumbnail

結合のタイプ

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

  • 左結合

  • 内部結合

  • 外部結合

  • 右結合

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

さまざまなタイプの結合操作からの結果セットの例。各操作の前後にデータ テーブルが表示されます。

左結合

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

左結合

左結合で発生するデータの組み合わせの概要を示す図。

内部結合

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

内部結合

内部結合で発生するデータの組み合わせの概要を示す図。

外部結合 (既定)

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

type キーワードを省略した場合、既定の結合タイプは外部結合となります。

外部結合

外部結合で発生するデータの組み合わせの概要を示す図。

右結合

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

右結合

右結合で発生するデータの組み合わせの概要を示す図。

クロス結合

情報メモ結合操作のソースとターゲットの間に共通の項目名がない場合、結合はすべての行のデカルト積になります。これは「クロス結合」と呼ばれます。

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

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

構文と引数

構文:  

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

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

関連トピック

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

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

ロード スクリプトの例 - 左結合

左結合では、メイン (ターゲット) テーブルのすべてのレコードを保持し、2 番目の (ソース) テーブルから一致するデータを追加します。ソースに一致するデータがない場合でも、メイン テーブルのレコードは引き続き表示されますが、ソース テーブルからの項目は空になります。

ロード スクリプトの例 - 内部結合

内部結合は、両方のテーブルに存在するレコードのみを保持します (一致する項目値に基づく)。

ロード スクリプトの例 - 外部結合

外部結合は、両方のテーブルからすべてのレコードを保持します。一致しない場合、項目は空白のままになります。

ロード スクリプトの例 - 右結合

右結合では、ソース テーブルのすべてのレコードが保持され、ターゲット テーブルから一致する情報が追加されます。ターゲット テーブルに一致するものがない場合、その項目は空白になります。

トラブルシューティング - クロス結合

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

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