Skip to main content

テーブルの結合 (データ管理ツール)

サマリー

共通フィールドに基づいて、レイヤーを別のレイヤーまたはテーブルに結合します。 フィーチャ レイヤー、テーブル ビュー、およびラスター属性テーブルを含むラスター レイヤーを使用できます。

結合テーブル パラメーター値のレコードは、入力テーブル パラメーター値のレコードに一致します。 入力フィールドと結合フィールドの値が等しい場合に一致したと見なされます。 この結合は一時的なものです。

テーブルの結合ツールの図

使用法

  • 入力テーブル パラメーター値は、属性テーブルを含むフィーチャ レイヤー、テーブル ビュー、またはラスター レイヤーにすることができます。 データ パスが使用されると、レイヤーが結合とともに作成されます。 結合は、データではなく常にレイヤーに格納されます。

  • 永続的な結合を行うには、フィールドの結合 ツールを使用するか、結合したレイヤーを フィーチャのコピー行のコピーフィーチャのエクスポート、または テーブルのエクスポート のいずれかのツールへの入力として使用します。 結果を新しいフィーチャクラスまたはテーブルに保存する場合、完全に記述したフィールド名を保持環境を使用すると、結合後の出力フィールドの名前を、フィールドの取得元のテーブルの名前で修飾するかどうかを制御できます。 出力がシェープファイルの場合を除き、レイヤーから出力にフィールド エイリアスが保存されます。

  • クエリー レイヤーの作成 ツール、データベース ビューの作成 ツール、または 集約クエリー レイヤーの作成 ツールを使用すると、結合パフォーマンスが最適化され、エンタープライズ ジオデータベースまたは SQLite データベース データを結合する際には、さらに多くの機能を使用できます。

  • 入力がフィーチャクラスまたはデータセット パスの場合、このツールは、ツールの結果が適用された新しいレイヤーを作成して返します。

  • 結合によって 1 対多の結合が生成された場合、結合の結果は属性テーブルで確認でき、テーブルに重複するオブジェクト ID が存在する場合、警告メッセージが表示されます。 多くのジオプロセシング ツールは重複したオブジェクト ID を含むデータをサポートしておらず、そのようなデータを処理した際に予期しない結果が生じる可能性があるため、最初に フィーチャのエクスポート ツールを使用して結合したレイヤーを新しいフィーチャクラスにコピーすることをおすすめします。 その後、新しいフィーチャクラスを他のジオプロセシング ツールの入力として使用します。

    必要に応じて、結合方法 パラメーターを 1 対最初の結合 に設定して、オブジェクト ID の重複を避けます。

  • 結合方法 パラメーターでは、入力レコードが複数の結合テーブル レコードに一致する場合に、結合の基数を調整できます。 このツールは、デフォルトで入力と結合のテーブル データ ソースがサポートしている場合に、1 対多の結合方法を使用します。 1 対多の結合がサポートされるのは、入力と結合のテーブルが同じデータベース形式のファイル ジオデータベース、モバイル ジオデータベース、エンタープライズ ジオデータベース、メモリー ワークスペースにある場合です。 ブランチ バージョン対応データセットは、1 対多の結合をサポートしていません。

    1 対最初の結合方法では、結合テーブル内の最初の一致が使用されるため、結合を実行するたびに一致が異なる場合があります。 1 対 1 の結合は大文字と小文字を区別しませんが、1 対多の結合は大文字と小文字を区別します。

  • 次のテーブルには、さまざまな入力で結合を行った場合の考えられる結果が含まれます。

    最初のテーブルは、1 対多の結合を示します。 すべてのレコードが一致するため、一致するレコードのみを保持することによる影響はありません。

    入力テーブル

    結合テーブル

    結果

    入力フィールド

    タイプ

    結合フィールド

    入力フィールド

    タイプ

    結合フィールド

    1

    A

    1

    100

    1

    A

    1

    100

    2

    B

    2

    200

    2

    B

    2

    200

    1

    300

    1

    A

    1

    300

    2

    400

    2

    B

    2

    400

    テーブルの結合の例: 各テーブルにオブジェクト ID フィールドがあるときの 1 対多の結合

    2 番目のテーブルは、オブジェクト ID フィールドのない結合テーブルを使用しています。この場合、1 対 1 の結合のみが可能です。 また、各テーブルの取得元のワークスペースが異なる場合にのみ、1 対 1 の結合を行うことができます。 1 対 1 の結合は大文字と小文字が区別されません。

    入力テーブル

    結合テーブル

    結果

    入力フィールド

    タイプ

    結合フィールド

    入力フィールド

    タイプ

    結合フィールド

    1

    A

    1

    100

    1

    A

    1

    100

    2

    B

    2

    200

    2

    B

    2

    200

    3

    300

    4

    400

    テーブルの結合の例: いずれのテーブルもオブジェクト ID フィールドがないときの 1 対 1 の結合

    最後のテーブルで、入力テーブルに結合テーブルを超える数のレコードが含まれています。 すべてのレコードを保持することにより、一致するすべてのレコードに加えて、一致しない入力テーブルからのレコードが保持されます。

    入力テーブル

    結合テーブル

    結果

    入力フィールド

    タイプ

    結合フィールド

    入力フィールド

    タイプ

    結合フィールド

    1

    A

    1

    100

    1

    A

    1

    100

    2

    B

    2

    200

    2

    B

    2

    200

    3

    C

    1

    300

    1

    A

    1

    300

    4

    D

    2

    400

    2

    B

    2

    400

    3

    C

    <Null>

    <Null>

    4

    D

    <Null>

    <Null>

    テーブルの結合の例: 各テーブルにオブジェクト ID フィールドがあり、すべての入力レコードを保持 パラメーターがオンのときの 1 対多の結合

    入力テーブルに、1 対多の結合を実行するオブジェクト ID フィールドがあり、同じワークスペースに存在する必要があります。

  • 結合テーブルのレコードは、結合テーブルがオブジェクト ID フィールドを含む場合は複数のレコードに一致することが可能です。そうでない場合は、1 対 1 の結合が実行されます。

  • テーブルを結合するときに、すべてのレコードを保持するのがデフォルトのオプションです。 入力テーブルのレコードと一致するレコードが結合テーブルに存在しない場合、そのレコードの、結合テーブルから入力テーブルに追加されているすべてのフィールドに、NULL 値が与えられます。

    入力テーブル

    結合テーブル

    結果

    入力フィールド

    タイプ

    結合フィールド

    入力フィールド

    タイプ

    結合フィールド

    1

    A

    1

    100

    1

    A

    1

    100

    2

    B

    2

    200

    2

    B

    2

    200

    3

    C

    1

    300

    1

    A

    1

    300

    4

    D

    2

    400

    2

    B

    2

    400

    3

    C

    <Null>

    <Null>

    4

    D

    <Null>

    <Null>

    すべての入力レコードを保持 パラメーターがオフの場合、入力テーブルのレコードと一致するレコードが結合テーブルに存在しない場合、結合後の出力からそのレコードが削除されます。 入力テーブルがレイヤーの属性テーブルである場合、それらに結合されているデータを持たないフィーチャはマップに表示されません。

    入力テーブル

    結合テーブル

    結果

    入力フィールド

    タイプ

    結合フィールド

    入力フィールド

    タイプ

    結合フィールド

    1

    A

    1

    100

    1

    A

    1

    100

    2

    B

    2

    200

    2

    B

    2

    200

    3

    300

    4

    400

  • フィールド演算 ツールは、1 対多のレイヤーを使用している場合は最初に見つかったレコードを更新し、残りの重複レコードをスキップします。 テーブル ビューで結合レイヤー フィールド値を手動で編集すると、最後に行った編集内容が残ります。

  • エイリアス、表示設定、数値形式などのフィールド プロパティは、結合が追加または削除された場合も維持されます。

  • 結合はレイヤーの継続期間のみ有効です。 レイヤーは、ArcGIS Pro セッションを保存するか、レイヤーをファイルへ保存 ツールを使用してレイヤー ファイルに保存することで、保持できます。

    スクリプト ツールで作成された結合の結果を確認するには、ツールがレイヤーを派生した出力パラメーターとして含む必要があります。 同様に、結合された結果を確認するには、モデル ツールで、更新された入力レイヤーまたはテーブル ビュー パラメーターを派生した出力パラメーターとして設定する必要があります。

  • デフォルトとして、ツール実行後のテーブルでは、フィールドの前に入力の名前とピリオド (.) が追加され、結合テーブルのすべてのフィールドの前に結合テーブルの名前とピリオドが追加されます。

    たとえば、AB というフィールドがある landuse を、CD というフィールドがある lookup_tab に結合すると、ツール実行後のレイヤーまたはテーブル ビューのフィールドは landuse.Alanduse.Blookup_tab.Clookup_tab.D になります。

  • レイヤーには一意の名前が必要です。 入力テーブルと結合テーブルの名前が同じで異なるワークスペースに存在する場合、結合を実行すると定義が不適切なレイヤーが作成されます。

  • 入力フィールドと結合フィールドにインデックスを付けると、パフォーマンスが向上します。 結合フィールドのインデックスを作成 パラメーターをオンにすると、両方のフィールドに属性インデックスが追加されます。 または、結合する各フィールドには、属性インデックスの追加 ツールを使用してインデックスを付けることができます。

  • 結合結果が想定外または未完了の場合は、入力フィールドと結合フィールドにインデックスが付けられているかどうかを確認します。 フィールドにインデックスがない場合は、インデックスを追加してみてください。 フィールドにインデックスがある場合は、インデックスを削除して再度追加し、インデックスに関する問題を修正してください。 あるいは、結合フィールドのインデックスの再構築 パラメーターをオンにし、既存のインデックスを削除して再構築します。

  • 入力のレイヤーまたはテーブル ビューのフィールドが フィーチャ レイヤーの作成 ツールまたは テーブル ビューの作成 ツールの フィールド情報 パラメーターを使用して変更 (名前の変更または非表示設定) された場合でも、このフィールド変更は、結合後の出力のレイヤーまたはテーブル ビューには含まれません。

  • 結合テーブルの定義クエリーは、新しいアクティブなクエリーを追加することで、入力レイヤーまたはテーブル ビューに適用されます。 以前のクエリーが保持され、必要に応じて結合テーブルからクエリーを無効化できるよう、非アクティブに設定されます。 定義クエリーを削除するには、テーブルの結合を解除 ツールを使用します。

  • 結合テーブルに定義クエリーがある場合、すべての入力レコードを保持 パラメーターによる影響はありません。 必要に応じて、or OBJECTID is null を追加し、定義クエリーを手動で更新して修正できます。

  • 結合の検証 ツールを使用すると、レイヤーまたはテーブルに有効なフィールド名および Object ID フィールドがあるかどうか、結合によって一致するレコードが生成されるか、結合が 1 対 1 であるか 1 対多であるかなどの結合のプロパティを判定するため、2 つのレイヤーまたはテーブル間の結合について検証を行うことができます。

    結合の検証を行うボタンは、簡単に使用できるよう、ツールのダイアログ ボックスにあります。

  • このツールは、入力テーブルと結合テーブルでの選択内容を無視します。 フィールドの結合(join-field.yml) ツールでは、選択セットがサポートされています。 選択したサブセットのみで結合するには、選択レイヤーを作成して、そのレイヤーをこのツールの入力として使用します。 選択レイヤーを作成すると、結合レイヤーのプロパティがコピーされます。

パラメーター

ラベル 説明 データ タイプ

入力テーブル

結合先のテーブルに結合するレイヤーまたはテーブル ビュー

Mosaic Layer; Raster Layer; Table View

入力フィールド

結合のキーとなる、入力のレイヤーまたはテーブル ビューのフィールド

Field

結合テーブル

入力レイヤーまたはテーブル ビューに結合されるテーブルまたはテーブル ビュー。

Mosaic Layer; Raster Layer; Table View

結合フィールド

結合のキーとなる値が格納されている、結合テーブル内のフィールド。

Field

すべての入力レコードを保持

(オプション)

結合テーブルに含まれるレコードに一致する入力内のレコードのみを出力に含めるか、入力レイヤーまたはテーブル ビュー内のすべてのレコードを出力に含めるかを指定します。

  • オン入力のレイヤーまたはテーブル ビュー内のすべてのレコードを出力に含めます。 これは外部結合とも呼ばれます。 これがデフォルトです。

  • オフ結合先のテーブルに含まれる行に一致する入力内のレコードのみを出力に含めます。 これは内部結合とも呼ばれます。

Boolean

インデックス結合フィールド

(オプション)

入力フィールドおよび結合フィールドに、テーブル属性インデックスの追加を行うかどうかを指定します。

  • オン両方のフィールドにインデックスが作成されます。 テーブルに既存のインデックスが存在する場合、新しいインデックスは追加されません。

  • オフインデックスは追加されません。 これがデフォルトです。

Boolean

結合フィールドのインデックスの再構築

(オプション)

入力フィールドと結合フィールドのインデックスを削除して再構築するかどうかを指定します。

  • オン既存のインデックスが削除され、新しいインデックスが追加されます。

  • オフ既存のインデックスの削除および再構築を行いません。 これがデフォルトです。

Boolean

結合方法

(オプション)

データに 1 対多の基数が含まれている場合に、結合が 1 対多または 1 対 1 のいずれであるかを指定します。

1 対多の結合方法がサポートされるのは、入力と結合のテーブルが同じデータベース形式のファイル ジオデータベース、モバイル ジオデータベース、エンタープライズ ジオデータベース、メモリー ワークスペースにある場合です。 ブランチ バージョン対応データセットは、1 対多の結合をサポートしていません。

パラメーター値が指定されていない場合、結合方法は 1 対多 (サポートされている場合) になりますが、そうでない場合は 1 対最初になります。

  • 1 対最初の結合結合操作は、一致する結合フィールド値を含む最初の結合レコードと各入力レコードを照合します。

  • 1 対多の結合結合操作は、一致する結合フィールド値を含むすべての結合レコードと各入力レコードを照合します。

String

派生した出力

ラベル 説明 データ タイプ

更新された入力レイヤーまたはテーブル ビュー

更新された入力データセット。

Table View; Raster Layer; Mosaic Layer

環境

現在のワークスペース

ライセンス情報

  • Basic: はい
  • Standard: はい
  • Advanced: はい