日本語

操作手順: ArcMap での 1 対多の結合の作成

概要

以下の手順は、別のテーブルに対する 1 対多のマッピングによってテーブルを作成する方法を示しています。

手順

ArcMap での 2 つのテーブル間の結合は、メイン テーブルとその他のテーブル (属性がメイン テーブルに結合されるテーブル) との間の 1 対 1 または多対 1 の関係でのみ実行できます。 メイン テーブル内の各レコードについて、その他のテーブル内に複数のマッチング レコードが存在する場合は、その他のテーブルの最初のマッチング レコードのみが結合されます。

ただし、求められる結果として、その他のテーブル内のすべてのマッチング レコードに対してメイン テーブルのレコードが存在すること、つまり、メイン テーブルに重複レコードを作成することが必要となる場合もあります。 これを実現するには、次の 2 つの方法が考えられます。

  • クエリ テーブルの作成 (Make Query Table) ([ArcToolbox] → [データ管理ツール] → [レイヤーとテーブル ビュー])

    このツールでは、フィーチャクラスの属性テーブルと非空間テーブルを結合できますが、すべて同じジオデータベース内に配置する必要があります。

    複数のテーブル間の関係を指定するには、次のように、複数の条件をリストします。
    . = . AND . = .
    など。

    フィールドのペア間の関係を指定するには、[式] フィールドに SQL 式を入力します。 式を入力する代わりに、フィールドの右側の [SQL] ボタンをクリックして、[検索条件設定] ダイアログを表示します。
    [O-Image] QueryBuilderDialog
    一番上のリストボックスには、各テーブルのフィールドが <テーブル名>.<フィールド名> という形式で表示されます。 ファイル名をダブルクリックして、編集エリアに挿入します。 ダイアログ内のその他の演算子の構文のボタン (等号、Is、And、Not など) をクリックして、式に演算子を追加します。 作成する式は ArcMap のレイヤーのフィルター設定と似ていますが、ここでは、1 つのテーブル内の複数のフィールドをその他のテーブル内のフィールドと比較できます。
    [O-Image] QueryBuilderExpression
    ツールへの最初の入力がフィーチャクラスの場合は、出力構造もフィーチャクラスになります。そうでない場合、出力構造はテーブルになります。 最初の入力のテーブルには、その他すべてのテーブルの属性が追加されます。 さらに、最初の入力のレコードは、その他のテーブル内の該当するすべてのレコードと一致するように、必要に応じて複製されます。

    このツールでは、関係する各テーブル内に一意のキー フィールドを指定して、最終的な出力テーブルのすべてのレコードに一意のインデックスが含まれるようにしてください。
  • 空間結合 (Spatial Join) ([ArcToolbox] → [解析ツール] → [オーバーレイ])

    このツールは、その他のレイヤーの属性テーブルのフィールドを、2 つのレイヤーのフィーチャ間の空間リレーションシップ ([交差する]、[含む]、[含まれる]、[最も近い] など) に基づいて、メイン レイヤーのテーブルに追加します。

    結合方法は、1 対 1 または 1 対多に設定できます。 結合方法が 1 対多の場合、出力フィーチャクラスには、その他のフィーチャクラス内の対応するレコードと一致するように、メイン フィーチャクラスのレコードを重複させて含むことができます。

関連情報