Feld verbinden (Data Management)
Zusammenfassung
Stellt Verbindungen des Inhalts einer Tabelle auf der Grundlage eines gemeinsamen Attributfeldes mit einer anderen Tabelle her. Die Eingabetabelle wird so aktualisiert, dass sie die Felder aus der Join-Tabelle enthält. Sie können auswählen, welche Felder aus der Join-Tabelle der Eingabetabelle hinzugefügt werden.
Die Datensätze in der Eingabetabelle werden den Datensätzen in der Join-Tabelle zugeordnet. Die Zuordnung basiert auf dem Eingabe-Join-Feld und dem Ausgabe-Join-Feld. Bei Bedarf können Sie in der Join-Tabelle im Laufe der Verbindung nur die gewünschten Felder auswählen und an die Eingabetabelle anhängen.
Bild
Verwendung
-
Bei der Eingabetabelle kann es sich um eine Feature-Class (einschließlich Shapefile) oder eine Tabelle handeln.
-
Alle Felder in der Eingabetabelle werden bei der Verbindung beibehalten. Optional können der Ausgabe auch nur ausgewählte Felder aus der Join-Tabelle hinzugefügt werden. Diese können Sie unter dem Parameter Join-Felder aktivieren.
-
Datensätze aus der Join-Tabelle können mehr als einem Datensatz in der Eingabetabelle zugeordnet werden. Weitere Informationen zu Eins-zu-eins-, Viele-zu-eins-, Eins-zu-vielen- und Viele-zu-vielen-Verbindungen finden Sie unter Verbinden von Tabellen und Erstellen von Beziehungen zwischen Tabellen.
-
Falls für den optionalen Parameter Join-Felder keine Felder ausgewählt werden, werden der Ausgabe standardmäßig alle Felder der Join-Tabelle hinzugefügt.
-
Verbindungen können auf Feldern vom Typ Text, Datum oder Zahl basieren.
-
Bei Verbindungen auf Basis von Textfeldern wird zwischen Groß- und Kleinschreibung unterschieden.
-
Felder mit verschiedenen Zahlenformaten können verbunden werden, wenn die Werte gleich sind. Sie können z. B. ein Feld vom Typ "Float" mit einem Feld vom Typ "Short Integer" verbinden.
-
Das Eingabe-Join-Feld und das Ausgabe-Join-Feld können unterschiedliche Namen haben.
-
Falls ein Join-Feld denselben Namen wie ein Feld der Eingabetabelle trägt, wird an das verbundene Feld "_1" (bzw. "_2" oder "_3" usw.) angehängt, um es eindeutig zu benennen.
-
Wenn die Werte im Ausgabe-Join-Feld nicht eindeutig sind, wird nur das erste Vorkommen der jeweiligen Werte verwendet.
- Wenn andere Join-Tabellenwerte als das erste Vorkommen berücksichtigt werden sollen, führen Sie zunächst das Werkzeug Summenstatistik aus, und verwenden Sie die Join-Tabelle als Eingabe. Mit Summenstatistik können Sie Felder (z. B., Summe, Mittelwert, Min) zusammenfassen.
- Um zwei oder mehr Felder vor dem Verbinden in der Join-Tabelle zu vereinigen, exportieren Sie zuerst die Tabelle oder die Feature-Class mit dem Werkzeug Tabelle in Tabelle und führen das Vereinigen dann mit der Feldzuordnung des Werkzeugs durch.
- Wenn andere Join-Tabellenwerte als das erste Vorkommen berücksichtigt werden sollen, führen Sie zunächst das Werkzeug Summenstatistik aus, und verwenden Sie die Join-Tabelle als Eingabe. Mit Summenstatistik können Sie Felder (z. B., Summe, Mittelwert, Min) zusammenfassen.
Syntax
Parameter | Erläuterung | Datentyp |
in_data |
Die Tabelle oder die Feature-Class, mit der die Join-Tabelle verbunden wird. | Mosaic Layer; Mosaic Dataset; Raster Catalog Layer; Raster Layer; Table View |
in_field |
Das Feld in der Eingabetabelle, auf dem die Verbindung basieren soll. | Field |
join_table |
Die Tabelle, die mit der Eingabetabelle verbunden werden soll. | Mosaic Layer; Raster Catalog Layer; Raster Layer; Table View |
join_field |
Das Feld in der Join-Tabelle, das die Werte enthält, auf denen die Verbindung basiert. | Field |
fields [fields,...] (optional) |
Die Felder aus der Join-Tabelle, die in die Verbindung einbezogen werden sollen. | Field |
Codebeispiel
Das folgende Skript im Python-Fenster veranschaulicht, wie Sie die Funktion "JoinField" im unmittelbaren Modus verwenden.
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"])
Dieses eigenständige Python-Skript stellt die Verwendung der Funktion "JoinField" zum Verbinden einer Tabelle mit einer Feature-Class dar, wobei nur zwei Tabellenfelder in die Verbindung einbezogen werden.
# 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)