ArcGIS for Desktop

  • ドキュメント
  • 価格
  • サポート

  • My Profile
  • ヘルプ
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

組織のマッピング プラットフォーム

ArcGIS for Desktop

完全なプロ仕様の GIS

ArcGIS for Server

エンタープライズ GIS

ArcGIS for Developers

位置情報利用アプリの開発ツール

ArcGIS Solutions

各種業界向けの無料のテンプレート マップおよびテンプレート アプリケーション

ArcGIS Marketplace

組織で使えるアプリとデータを取得

  • ドキュメント
  • 価格
  • サポート
Esri
  • サイン イン
user
  • マイ プロフィール
  • サイン アウト

ヘルプ

  • ホーム
  • はじめに
  • マップ
  • 解析
  • データ管理
  • ツール
  • その他...

テーブル結合 (Add Join)

  • サマリ
  • 図
  • 使用法
  • 構文
  • コードのサンプル
  • 環境
  • ライセンス情報

サマリ

レイヤー (この場合は、フィーチャ レイヤー、テーブル ビュー、またはラスター属性テーブルを持つラスター レイヤー) を、共通フィールドに基づいて別のレイヤーまたはテーブルに結合します。

[結合先のテーブル] 内のレコードは、入力の [レイヤー名] のレコードに一致します。入力の結合フィールドと、出力の結合フィールドの値が等しい場合に一致したと見なされます。この結合は一時的なものです。

図

テーブル結合 (Add Join)

使用法

  • 入力は、フィーチャ レイヤー、テーブル ビュー、または属性テーブルを持つラスター レイヤーである必要があります。フィーチャクラスやテーブルは使用できません。

  • [結合先のテーブル] のレコードを、入力のレイヤーまたはテーブル ビュー内の複数のレコードに一致させることができます。1 対 1、多対 1、1 対多、多対多の詳細については、「テーブルの結合とリレートの詳細」をご参照ください。

  • テーブルを結合する場合、デフォルト オプションではすべてのレコードが保持されます。ターゲット テーブル内のレコードが結合テーブル内のレコードと一致しない場合は、結合テーブルからターゲット テーブルに付加されるすべてのフィールドについて、そのレコードに NULL 値が与えられます。

    結合によってすべてのレコードを保持する例

    一致するレコードのみを保持するオプションでは、ターゲット テーブル内のレコードが結合テーブル内のレコードと一致しない場合に、そのレコードが結果のターゲット テーブルから削除されます。ターゲット テーブルがレイヤーの属性テーブルである場合、それらに結合されているデータを持たないフィーチャはマップに表示されません。

    結合によって一致するレコードのみを保持する例

  • [結合先のテーブル] には、ジオデータベース テーブル、dBASE ファイル、INFO テーブル、OLE DB テーブルから任意のタイプのテーブルを指定できます。

  • 入力のレイヤーまたはテーブル ビューには ObjectID フィールドが必要です。[結合先のテーブル] に ObjectID を含める必要はありません。

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

  • 同じテーブル名を使用した結合がすでに存在する場合、たとえば、レイヤー A がテーブル B と結合している場合に、ツールを実行してテーブル B と再び結合しようとすると、結合がすでに存在することを知らせる警告が表示されます。

  • 結合はセッションの継続期間のみ有効です。他のセッションで使用するために結合を維持するには、[レイヤー ファイルの保存 (Save To Layer File)] ツールを使用して、レイヤーをレイヤー ファイルに保存してください。この操作はレイヤーに対してのみ可能です。テーブル ビューはこの方法では保存できません。

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

    • たとえば、A と B というフィールドがある landuse を、C と D というフィールドがある lookup_tab に結合すると、ツール実行後のレイヤーまたはテーブル ビューのフィールドは llanduse.A、landuse.B、lookup_tab.C、lookup_tab.D になります。
    • カバレッジ フィーチャクラスおよび INFO テーブルの場合は、テーブルとフィールド名の区切り文字がピリオドではなくコロン (:) になります。

  • 永続的な結合を行う場合は、[フィールド結合 (Join Field)] ツールの使用を検討してください。結合を永続的にするためのもう 1 つの方法としては、結合したフィーチャ レイヤーを新しいフィーチャクラスに、または結合したテーブル ビューを新しいテーブルに保存します。結果を新しいフィーチャクラスまたはテーブルに保存する場合、環境設定の修飾されたフィールド名を使用すると、結合後の出力フィールドの名前を、フィールドの取得元のテーブルの名前で修飾するかどうかを制御できます。

  • 結合のキーとなる、入力レイヤーまたはテーブル ビューおよび [結合先のテーブル] 内の各フィールドにインデックスを付けると、パフォーマンスを向上させることができます。この操作は、[属性インデックスの追加 (Add Attribute Index)] ツールを使用するか、ArcCatalog で入力を右クリックし、ダイアログ ボックスを使用して、希望するフィールドにインデックスを追加することによって行います。

    データ結合のパフォーマンスのヒントの詳細

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

  • [結合先のテーブル] の名前を数値で始めることはできません。

    テーブルの結合に失敗する理由の詳細

構文

AddJoin_management (in_layer_or_view, in_field, join_table, join_field, {join_type})
パラメータ説明データ タイプ
in_layer_or_view

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

Raster Catalog Layer; Mosaic Layer; Raster Layer; Table View
in_field

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

Field
join_table

入力レイヤーまたはテーブル ビューの結合先となるテーブルまたはテーブル ビュー

Raster Catalog Layer; Mosaic Layer; Raster Layer; Table View
join_field

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

Field
join_type
(オプション)

入力の複数のレコードが結合先のテーブル内の単一のレコードに一致した場合の処理方法を指定します。

  • KEEP_ALL —入力のレイヤーまたはテーブル ビュー内のすべてのレコードを出力に含めます。外部結合とも呼ばれます。これがデフォルトです。
  • KEEP_COMMON —結合先のテーブルに含まれる行に一致する入力内のレコードのみを結果に含めます。内部結合とも呼ばれます。
Boolean

コードのサンプル

AddJoin (テーブル結合) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトで、AddJoin (テーブル結合) 関数をイミディエイト モードで使用する方法を示します。

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.MakeFeatureLayer_management ( "Habitat_Analysis.gdb/vegtype", "veg_layer")
arcpy.AddJoin_management( "veg_layer", "HOLLAND95", "vegtable.dbf", "HOLLAND95")
arcpy.CopyFeatures_management( "veg_layer", "Habitat_Analysis.gdb/vegjoin")
AddJoin (テーブル結合) の例 2 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトで、AddJoin (テーブル結合) 関数をワークフローの一部として使用して、テーブルをフィーチャクラスに結合してから任意のフィーチャを抽出する方法を示します。

# Name: AttributeSelection.py
# Purpose: Join a table to a featureclass and select the desired attributes

# Import system modules
import arcpy

try:
    # Set environment settings
    arcpy.env.workspace = "C:/data"
    arcpy.env.qualifiedFieldNames = False
    
    # Set local variables    
    inFeatures = "Habitat_Analysis.gdb/vegtype"
    layerName = "veg_layer"
    joinTable = "vegtable.dbf"
    joinField = "HOLLAND95"
    expression = "vegtable.HABITAT = 1"
    outFeature = "Habitat_Analysis.gdb/vegjoin"
    
    # Create a feature layer from the vegtype featureclass
    arcpy.MakeFeatureLayer_management (inFeatures,  layerName)
    
    # Join the feature layer to a table
    arcpy.AddJoin_management(layerName, joinField, joinTable, joinField)
    
    # Select desired features from veg_layer
    arcpy.SelectLayerByAttribute_management(layerName, "NEW_SELECTION", expression)
    
    # Copy the layer to a new permanent feature class
    arcpy.CopyFeatures_management(layerName, outFeature)
    
except Exception as err:
    print(err.args[0])

環境

  • 現在のワークスペース
  • 修飾フィールド名

ライセンス情報

  • ArcGIS for Desktop Basic: ○
  • ArcGIS for Desktop Standard: ○
  • ArcGIS for Desktop Advanced: ○

関連トピック

  • テーブル結合ツールセットの概要
  • レイヤーとテーブル ビューの操作
  • テーブルの結合とリレートについて
このトピックへのフィードバック

ArcGIS for Desktop

  • ホーム
  • ドキュメント
  • 価格
  • サポート

ArcGIS プラットフォーム

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Esri について

  • 会社概要
  • 採用情報
  • スタッフ ブログ
  • ユーザ カンファレンス
  • デベロッパ サミット
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | プライバシー | リーガル