フィールド結合(Join Field) (データ管理)
サマリ
共通属性フィールドに基づいて、テーブルの内容を別のテーブルに永続的に結合します。入力テーブルが更新され、結合テーブル内のフィールドが格納されます。結合テーブルからのフィールドの中から、入力テーブルに追加するフィールドを選択することができます。
[レイヤ、テーブル ビューのキーとなるフィールド] の値および [結合先のキーとなるフィールド] の値に基づいて [入力テーブル] 内のレコードを [結合先のテーブル] 内のレコードと照合します。結合時には必要に応じて、結合したいフィールドのみを [結合先のテーブル] から選択し、[入力テーブル] に付加できます。
図
使用法
-
[入力テーブル] には、フィーチャクラス(シェープファイルを含む)またはテーブルを指定できます。
-
結合時は [入力テーブル] 内のすべてのフィールドが保持されます。必要に応じて、[結合先のテーブル] から選択したフィールドのみを出力に追加することも可能です。対象のフィールドは、[結合先のテーブル] パラメータで調べることができます。
-
[結合先のテーブル] 内のレコードは、[入力テーブル] 内の複数のレコードと照合できます。1 対 1、多対 1、1 対多、多対多の詳細については、「テーブルの結合とリレートの詳細」をご参照ください。
-
オプションの [結合フィールド] パラメータ用にフィールドを選択しない場合、[結合先のテーブル] から出力に追加されたフィールドがすべて、結合の対象となります。
-
結合はフィールドのタイプ(テキスト、日付または数値)に基づいて実行できます。
-
テキスト フィールドに基づく結合では、大文字と小文字が区別されます。
-
数値形式が異なるフィールド同士でも、それぞれの値が等しい限り結合できます。たとえば、Float 型のフィールドと Short 型のフィールドを結合できます。
-
[レイヤ、テーブル ビューのキーとなるフィールド] と [結合先のキーとなるフィールド] にはそれぞれ異なった名前を付けることができます。
-
結合フィールドに入力テーブル内のフィールドと同じ名前が付いている場合、結合フィールドの名前が他と重複することのないように、結合フィールドの末尾に _1(あるいは _2、_3、... など)が付加されます。
-
[結合先のキーとなるフィールド] 内の値が一意でない場合は、各値の最初の値のみが使用されます。
- 最初の値以外の結合テーブル値が考慮されるようにするには、まず 結合テーブル を入力として使用して、[要約統計量(Summary Statistics)] ツールを実行します。[要約統計量(Summary Statistics)] を使用すると、合計値、平均、最小などのフィールドについても概要を出力できるようになります。
- 結合の前に 2 つ以上のフィールドを結合テーブル内にマージする場合は、先に [テーブル → テーブル(Table To Table)] ツールを使用してテーブルまたはフィーチャクラスをエクスポートします。次に、ツールのフィールド マップを使用してマージしてください。
- 最初の値以外の結合テーブル値が考慮されるようにするには、まず 結合テーブル を入力として使用して、[要約統計量(Summary Statistics)] ツールを実行します。[要約統計量(Summary Statistics)] を使用すると、合計値、平均、最小などのフィールドについても概要を出力できるようになります。
構文
パラメータ | 説明 | データ タイプ |
in_data |
結合テーブルの結合先となるテーブルまたはフィーチャクラス。 | Mosaic Layer; Mosaic Dataset; Raster Catalog Layer; Raster Layer; Table View |
in_field |
結合のキーになる入力テーブル内のフィールド。 | Field |
join_table |
入力テーブルに結合されるテーブル。 | Mosaic Layer; Raster Catalog Layer; Raster Layer; Table View |
join_field |
結合のキーとなる値が格納されている、結合テーブル内のフィールド。 | Field |
fields [fields,...] (オプション) |
結合の対象となる、結合テーブル内のフィールド。 | Field |
コードのサンプル
次の Python ウィンドウ スクリプトは、JoinField(フィールド結合)関数をイミディエイト モードで使用する方法を、例を挙げて示したものです。
import arcpy
from arcpy import env
env.workspace = "C:/data/data.gdb"
arcpy.JoinField_management("zion_park", "zonecode", "zion_zoning", "zonecode", ["land_use","land_cover"])
以下のスタンドアロン Python スクリプトは、フィーチャクラスにテーブルを結合するために使用される JoinField(フィールド結合)関数を示しています。このスクリプトでは、テーブルのフィールドのうちの 2 つだけが、結合の対象となります。
# PermanentJoin.py
# Purpose: Join two fields from a table to a feature class
# Import system modules
import arcpy
from arcpy import env
# Set the current workspace
env.workspace = "c:/data/data.gdb"
# Set the local parameters
inFeatures = "zion_park"
joinField = "zonecode"
joinTable = "zion_zoning"
fieldList = ["land_use", "land_cover"]
# Join two feature classes by the zonecode field and only carry
# over the land use and land cover fields
arcpy.JoinField_management (inFeatures, joinField, joinTable, joinField, fieldList)