---
schema_version: "1"
id: 8f2bc543ab74f2163ad84f609b7ac62c80bdf6d91eb741aad173cefa23c3febb
title: データの結合
collection: tableau
version: next
locale: ja-jp
portal_url: https://docs.salesforce.com/tableau/next/ja-jp/public/desktop/joining_tables.md
canonical_url: https://help.tableau.com/v0.0/public/desktop/ja-jp/joining_tables.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 5fa0b505312991af4fd5434038f8834f9078daaa36b1e86ade78702b2282d515
description: Join data from multiple tables or data sources, including join types and clauses.
---
[メイン コンテンツに進む](#main-content)

# データの結合

多くの場合、目的の分析を実行するには、複数の場所 (異なるテーブルやデータ ソース) からデータを組み合わせる必要があります。データの構造と分析のニーズに応じて、テーブルを組み合わせるためのいくつかの方法があります。データ セットを組み合わせるさまざまな方法の詳細については、[「データの組み合わせ」Tableau Desktop](https://help.tableau.com/v0.0/public/desktop/ja-jp/%3Chttps://ww.tableau.com/learn/tutrials/on-demand/combining-data-tableau- Desktop?placelist=509089>)のトレーニング動画 (4 分) をご覧ください。

## 関係と結合

Tableau Desktop での既定の方法は、関係を使用することです。関係は、情報を組み合わせるときに元のテーブルの詳細レベルを保持します。関係を使用すると、コンテキストベースの結合をシート単位で実行でき、各データソースの柔軟性が向上します。ほとんどの場合、データを組み合わせる方法として関係が推奨されています。詳細については、[関係と結合の違い](https://help.tableau.com/v0.0/public/desktop/ja-jp/datasource_relationships_learnmorepage.htm)を参照してください。

ただし、意図的なフィルター―処理や重複など、関係と比較して結合が制御され望ましい結果となるように、結合を直接確立する必要がある場合があります。

**注**: 関係は、最終的に結合を活用します (バックグラウンドで実行)。たとえば、データ ソース間の関係では、Viz が異なるデータ ソースのテーブルのフィールドを使用するときに、クロスデータベース結合が生成されます。そのため、[クロスデータベース結合のパフォーマンス向上](https://help.tableau.com/v0.0/public/desktop/ja-jp/joins_xbd_perf.htm)が関連している場合もあります。

## 一般的な問題

- 結合を表示、編集、または作成するには、関係キャンバスで論理テーブル (データ ソースを初めて開くか作成する際に表示される領域) を開き、結合キャンバスにアクセスする必要があります。
- **パブリッシュされた Tableau データ ソースは結合できません。**パブリッシュされたデータソースを結合するには、リレーションシップを使用します。
- テーブルを結合する際は、結合するフィールドが同じデータ型である必要があります。テーブルの結合後にデータ型を変更すると、結合が壊れます。
- 結合句に使用するフィールドは、結合を解除しなければ削除することができません。データを結合して重複フィールドをクリーンアップするには、Tableau Desktop ではなく Tableau Prep Builder を使用します。

> [!TIP]
> 
> **ヒント**: Tableau Desktop には結合を作成したり、基本的なデータ整形を行ったりする機能がありますが、Tableau Prep Builder はデータの準備を目的として設計されています。複数の結合の実行、フィールド名のクリーンアップ、データ型の変更、複数のピボットの実行、またはその他の関連するデータの準備などを行う場合は、[Tableau Prep Builder](https://help.tableau.com/current/prep/ja-jp/prep_combine.htm#join-your-data) の使用を検討してください。

## 結合の作成

1. 結合を作成するには、関連するデータ ソースまたはソースに接続します。[データへの接続](https://help.tableau.com/v0.0/public/desktop/ja-jp/basicconnectoverview.htm)を参照してください。
    
    これらは、同じデータ ソース (データベース内のテーブルや Excel スプレッドシート内のシートなど)、または異なるデータ ソース (クロスデータベース結合と呼ばれます) に含めることができます。クロスデータベース結合を使用してテーブルを組み合わせると、キャンバスのテーブルとデータ　グリッドの列に色が付けられ、データがどの接続から来ているかが示されます。
    
    **注**: パブリッシュされた Tableau データ ソースを含むすべてのデータ ソースでクロスデータベース結合がサポートされているわけではありません。パブリッシュされたデータ ソースを結合するには、元のデータ ソースを編集して、結合をネイティブに含めるか、データ ブレンドを使用します。
2. 最初のテーブルをキャンバスにドラッグします。
    
    ![単一のテーブルを持つデータ モデル。](/tableau/next/ja-jp/public/desktop/ja-jp/Img/data_model_single_tablewjoin1.gif)
    
    この時点で　2 つ目のテーブルをドラッグすると、関係が形成されます。
3. メニューから \[開く\] を選択するか、最初のテーブルをダブルクリックして結合キャンバス (物理レイヤー) を開きます。
    
    ![オプションを表示するには表を展開します。](/tableau/next/ja-jp/public/desktop/ja-jp/Img/data_model_single_tablewjoin2.gif)
    
    関係キャンバスでテーブルをダブルクリックすると、結合キャンバスが開きます。
4. 別のテーブルをダブルクリックするか、結合キャンバスにドラッグします。
    
    ![2 つの結合があるデータ モデル。](/tableau/next/ja-jp/public/desktop/ja-jp/Img/data_model_single_tablewjoin3.gif)
    
    次のテーブルがまったく別のデータ ソースから作成されている場合、左のペインの \[接続\] で \[追加\] ボタン (Web 作成では ![データ ソースの追加アイコン。](/tableau/next/ja-jp/public/desktop/ja-jp/Img/add_web_datasource.png)) をクリックして、新しい接続を Tableau データ ソースに追加します。接続を選択した状態で、目的のテーブルを結合キャンバスにドラッグします。
5. 結合アイコンをクリックして既存の結合を構成します。データ ソースで使用されている利用可能なテーブルからフィールドを選択し、追加したテーブルから結合演算子およびフィールドを選択して、1 つ以上の結合句を追加します。
    
    ![データ結合を編集します。](/tableau/next/ja-jp/public/desktop/ja-jp/Img/data_model_single_tablewjoin4.gif)
    
    **注:** 不要な結合句を削除するには、結合句の右側にカーソルを移動すると表示される、 "x" をクリックします。
6. 完了したら、\[結合\] ダイアログと結合キャンバスを閉じます。

結合を作成したら、[データの結合](#results)します。結合のトラブルシューティングを行うには、[データの結合](#troubleshoot)を参照してください。

## 結合のしくみ

結合は、結合句と同様に、その型によって定義されます。

### 結合タイプ

一般的に、Tableau で使用できる結合には、内部、左、右、完全外部の 4 つのタイプがあります。複数テーブルのデータを組み合わせるために使用する結合タイプが不明な場合は、リレーションシップを使用する必要があります。

<table class="table--plain">
                        <colgroup><col style="width: 10%;">
                        <col>
                        </colgroup><tbody>
                            <tr class="TableStyle-Basic-Border-Body-Body1">
                                <td class="TableStyle-Basic-Border-BodyE-Column1-Body1" style="font-weight: bold;">結合タイプ</td>
                                <td class="TableStyle-Basic-Border-BodyE-Column1-Body1" style="font-weight: bold;">結果</td>
                            </tr>
                            <tr class="TableStyle-Basic-Border-Body-Body1">
                                <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">
                                    <p>内部</p>
                                    <p>
                                        <img src="https://help.tableau.com/v0.0/public/desktop/ja-jp/Img/join_type_inner.png" alt="内部結合のアイコン。">
                                    </p>
                                </td>
                                <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">
                                    <p>内部結合を使用してテーブルを組み合わせると、結果は両方のテーブルに一致がある値を含むテーブルになります。</p>
                                    <p>値が両方のテーブルで一致しない場合、その値は完全に削除されます。</p>
                                </td>
                            </tr>
                            <tr class="TableStyle-Basic-Border-Body-Body1">
                                <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">
                                    <p>左</p>
                                    <p>
                                        <img src="https://help.tableau.com/v0.0/public/desktop/ja-jp/Img/join_type_left.png" alt="左結合のアイコン。">
                                    </p>
                                </td>
                                <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">
                                    <p>左結合を使用してテーブルを組み合わせると、結果は左のテーブルのすべての値および右のテーブルからの一致する値を含むテーブルになります。</p>
                                    <p>左のテーブルの値に対応する一致が、右のテーブルにない場合、データ グリッドに NULL 値が表示されます。</p>
                                </td>
                            </tr>
                            <tr class="TableStyle-Basic-Border-Body-Body1">
                                <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">
                                    <p>右</p>
                                    <p>
                                        <img src="https://help.tableau.com/v0.0/public/desktop/ja-jp/Img/join_type_right.png" alt="右結合のアイコン。">
                                    </p>
                                </td>
                                <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">
                                    <p>右結合を使用してテーブルを組み合わせると、結果は右のテーブルのすべての値および左のテーブルからの一致する値を含むテーブルになります。</p>
                                    <p>右のテーブルの値に対応する一致が、左のテーブルにない場合、データ グリッドに NULL 値が表示されます。</p>
                                </td>
                            </tr>
                            <tr class="TableStyle-Basic-Border-Body-Body1">
                                <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">
                                    <p>完全外部</p>
                                    <p>
                                        <img src="https://help.tableau.com/v0.0/public/desktop/ja-jp/Img/join_type_fullouter.png" alt="完全外部結合のアイコン。">
                                    </p>
                                </td>
                                <td class="TableStyle-Basic-Border-BodyE-Column1-Body1">
                                    <p>完全外部結合を使用してテーブルを組み合わせると、結果は両方のテーブルのすべての値を含むテーブルになります。</p>
                                    <p>いずれかのテーブルの値が、他のテーブルと一致しない場合、データ グリッドに NULL 値が表示されます。</p>
                                </td>
                            </tr>
                            <tr class="TableStyle-Basic-Border-Body-Body1">
                                <td class="TableStyle-Basic-Border-BodyB-Column1-Body1"><i>ユニオン</i>
                                    <p>
                                        <img src="https://help.tableau.com/v0.0/public/desktop/ja-jp/Img/join_type_union.png" alt="ユニオンのアイコン。">
                                    </p>
                                </td>
                                <td class="TableStyle-Basic-Border-BodyB-Column1-Body1">
                                    <p>ユニオンは結合の一種ではありませんが、1 つのテーブルの行にあるデータを別のテーブルに追加することによって 2 つ以上のテーブルを組み合わせる別の方法です。ユニオンを実行する 2 つのテーブルのフィールド数が同じであり、両方のフィールドで名前とデータ型が一致していることが理想です。ユニオンの詳細については、<a href="https://help.tableau.com/v0.0/public/desktop/ja-jp/union.htm" class="xref">データのユニオン</a>を参照してください。</p>
                                </td>
                            </tr>
                        </tbody>
                    </table>

すべてのデータベースですべての結合のタイプがサポートされているわけではありません。結合ダイアログでオプションが使用できない場合は、データ ソースの制約が原因となっている可能性があります。

### 結合句

結合は、1 つまたは複数の結合句を設定することによって実行されます。結合句は、どのフィールドをテーブル間で共有し、対応する行をどのように照合するかを Tableau に指示します。たとえば、同じ ID を持つ行は結果のテーブル内に並べられます。

ほとんどの場合、結合句は等値演算子 (=) を使用して、同じ値を持つ行を照合します。より小さい (<) や等しくない (<>) などの非等値結合を実行することもできます。

また、結合には複数の結合句を含めることができます。たとえば、姓と名が別々の列に保存されている場合は、"First name = First name (名 = 名)" と "Last name = Last name (姓 = 姓)" の場合にのみ結合すると効果的です。行を結合する場合は、両方の条件が true である必要があります。または、姓が共有されているが、名が共有されていないときに結果を返す必要がある場合、結合句は "First name <> First name (名 <> 名)" と "Last name = Last name (姓 = 姓)" になります。

結合句には計算を含めることもできます。たとえば、結合句は名前フィールドの連結 "\[First name\] + \[Last name\] = \[First name\] + \[Last name\]" になります。すべてのデータ ソース接続が結合句での計算をサポートしているわけではないことに注意してください。

### 結合キーの NULL 値について

一般的に、結合はデータベース レベルで実行されます。テーブルの結合に使用しているフィールドに NULL 値が含まれている場合、ほとんどのデータベースでは NULL 値を含む行以外のデータを返します。ただし、特定の単一接続データ ソースの場合は、Tableau から、NULL 値を含むフィールドと NULL 値を含む別のフィールドとの結合を許可する追加オプションが提供されます。

データ ソースを設定した後、\[データ ソース\] ページで \[データ\] > \[Null 値を Null 値に結合する\] を選択します。

このオプションがグレー表示されている場合は、データ ソースでは使用できません。このオプションを使用するデータ ソースに 2 つ目の接続を追加すると、結合によって既定の動作 (NULL 値の行を除外する) に戻されます。

## クロスデータベース結合

Tableau では、異なるデータソースのテーブルからの結合が可能ですが、プラットフォームに互換性があるデータベース側からの制限もあります。クロスデータベース結合を行うには、複数接続データ ソースを設定する必要があります。つまり、テーブルを結合する前に各データベースに_新しい接続_を作成します。

1. 最初のデータ ソースに接続したら、\[データ\] ペインの \[追加\] オプションを使用して、別の接続を追加します。
    
    ![データ ソース ページの \[接続の追加\] ボタン。](Img/add_connection.png)
2. これにより、まったく異なるデータ ソースではなく、2 つ目の接続が作成されます。\[データ ソース\] タブで、2 つ以上の接続を切り替えることができます。
    
    ![データ ペイン内の複数の接続。](/tableau/next/ja-jp/public/desktop/ja-jp/Img/multiple_connections.png)
3. ワークシートに移動して分析を開始すると、データ ソースは単一のデータ ソースの組み合わせとして機能します。これは、ワークシート上で切り替えることができる 2 つの独立したデータ ソースと大きく異なる点です。
    
    ![2 つのデータ ソースを含むデータ ペイン。](/tableau/next/ja-jp/public/desktop/ja-jp/Img/multiple_datasources.png)
    
    **Book+** データ ソースには、クロスデータベース結合を持つ 2 つの接続が含まれています。これは、単一のデータ ソースとして機能します。**映画化**データ ソースは独立したデータ ソースです。

**注:** 一般的に、同じデータベースからテーブルを結合すると、パフォーマンスが向上します。これは、同じデータベース上に保存されているデータのクエリの場合、所要時間が短くなり、データベースのネイティブの機能を活用して結合を実行するためです。クロスデータベース結合のパフォーマンスの詳細については、[クロスデータベース結合のパフォーマンス向上](https://help.tableau.com/v0.0/public/desktop/ja-jp/joins_xbd_perf.htm)を参照してください。

## このセクションの他の記事