Join-Feld (Data Management)

Zusammenfassung

Stellt dauerhaft 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.

Verwendung

  • Die Datensätze im Parameter Eingabetabelle werden den Datensätzen im Parameter Join-Tabelle zugeordnet. Die Zuordnung basiert auf den Parametern Eingabe-Join-Feld und Join-Tabellen-Feld. Sie können in der Join-Tabelle auch bestimmte Felder auswählen, die bei der Verbindung an die Eingabetabelle angehängt werden sollen.

  • Bei dem Wert für Eingabetabelle kann es sich um eine Feature-Class (einschließlich eines Shapefile) oder eine Tabelle handeln.

  • Alle Felder im Parameter Eingabetabelle werden bei der Verbindung beibehalten. Sie können auch aus dem Wert Join-Tabelle bestimmte Felder auswählen, die der Ausgabe hinzugefügt werden sollen. Verwenden Sie den Parameter Felder übertragen, um diese Felder hinzuzufügen.

  • Datensätze aus dem Parameter Join-Tabelle können mehr als einem Datensatz im Parameter Eingabetabelle zugeordnet werden.

  • Falls für den optionalen Parameter Felder übertragen keine Felder ausgewählt werden, werden standardmäßig alle Felder der Join-Tabelle mit der Ausgabe verbunden. Um Feldnamen, Aliasnamen oder Eigenschaften zu ändern, setzen Sie den Parameter Übertragungsmethode auf Feldzuordnung verwenden.

  • 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.

  • Bei der Verbindung mit einer Eingabetabelle werden Felder aus der Join-Tabelle vom Typ "Global-ID" oder "Objekt-ID" nicht übertragen.

    Die Werte für Eingabe-Join-Feld und Join-Tabellen-Feld können unterschiedliche Feldnamen haben.

  • Falls ein Join-Feld denselben Namen wie ein Feld der Eingabetabelle trägt, wird an das verbundene Feld _1 (oder _2 bzw. _3 usw.) angehängt, um es eindeutig zu benennen.

  • Falls die Parameterwerte Eingabetabelle und Join-Tabelle den gleichen Namen haben, wird ein Fehler angezeigt, wenn auf die Schaltfläche Verbindung überprüfen geklickt wird, und der Vorgang wird nicht ausgeführt. Dies ist eine bekannte Einschränkung. Das Werkzeug wird jedoch erfolgreich ausgeführt, wenn Sie auf die Schaltfläche Ausführen klicken.

  • Wenn die Option Übertragungsfelder auswählen für den Parameter Übertragungsmethode angegeben ist und die Feldwerte im Parameterwert Join-Tabellen-Feld nicht eindeutig sind, wird nur das erste Vorkommen jedes Wertes verwendet. Um andere Werte als das erste Vorkommen zu berücksichtigen (eine Eins-zu-Viele-Verbindung), legen Sie den Parameter Übertragungsmethode auf Feldzuordnung verwenden fest. Um eine Eins-zu-Viele-Verbindung umzusetzen, muss der Parameterwert Eingabetabelle ein Objekt-ID-Feld aufweisen und sich im selben Workspace wie der Parameterwert Join-Tabelle befinden.

  • Verwenden Sie den Parameter Feldzuordnung, um die Felder und deren Inhalte im Ausgabe-Dataset zu verwalten.

    • Sie können Felder aus der Feldliste hinzufügen und entfernen, die Feldliste umsortieren und Felder umbenennen.
    • Als Datentyp der Ausgabefelder wird der Datentyp des zuerst gefundenen Eingabefeldes (dieses Namens) übernommen. Sie können den Datentyp in einen anderen gültigen Datentyp ändern.
    • Verwenden Sie eine Aktion, um festzulegen, wie Werte aus einem oder mehreren Eingabefeldern in einem einzigen Ausgabefeld zusammengeführt werden sollen. Die verfügbaren Aktionen sind: Erste(r), Letzte(r), Verbinden, Summe, Mittelwert, Medianwert, Modus, Minimum, Maximum, Standardabweichung und Anzahl.
    • Bei Verwendung von Verbinden können Sie ein Trennzeichen angeben, z. B. ein Komma oder andere Zeichen. Klicken Sie auf den Beginn des Textfeldes Trennzeichen, um die Trennzeichen hinzuzufügen.
    • Standardabweichung ist keine gültige Option für einzelne Eingabewerte.
    • Verwenden Sie die Schaltfläche Text ausschneiden bei Textquellfeldern, um auszuwählen, welche Zeichen aus einem Eingabewert in das Ausgabefeld extrahiert werden sollen. Um auf die Schaltfläche Text ausschneiden zuzugreifen, bewegen Sie den Mauszeiger über ein Textfeld in der Liste der Eingabefelder, und geben Sie dann die Start- und Endposition der Zeichen an.
    • Felder können auch mit Python-Skripts zugeordnet werden.

  • Wenn der Parameter Feldzuordnung mit der Vereinigungsregel "Verbindung" angegeben wird, kann nicht garantiert werden, dass die Reihenfolge der verbundenen Werte mit der Zeilenreihenfolge des Parameters Join-Tabellen-Feld übereinstimmt, sofern die Werte nicht eindeutig sind. Wenn zum Beispiel drei Features mit den Attributwerten Maus, Katze und Hund von ANIMAL verbunden werden, muss das Ergebnis nicht unbedingt die Reihenfolge "Maus, Katze und Hund" aufweisen.

  • Mit dem Werkzeug Verbindung überprüfen kann eine Verbindung zwischen zwei Layern oder Tabellen überprüft werden, um zu bestimmen, ob die Layer oder Tabellen gültige Feldnamen und Objekt-ID-Felder enthalten, ob die Verbindung übereinstimmende Datensätze generiert, ob die Verbindung eine Eins-zu-Eins- oder Eins-zu-Viele-Verbindung ist, und um weitere Eigenschaften der Verbindung zu bestimmen.

    Aus Gründen der Benutzerfreundlichkeit ist im Dialogfeld des Werkzeugs eine Schaltfläche zum Überprüfen der Verbindung verfügbar.

  • Durch Indizieren des Eingabefeldes und Join-Feldes kann die Performance verbessert werden. Mit dem Parameter Join-Felder indizieren können Sie Indizes hinzufügen oder ersetzen.

  • Wenn die Verbindungsergebnisse unerwartet oder unvollständig sind, dann überprüfen Sie, ob das Eingabefeld und das Join-Feld indiziert sind. Wenn die Felder nicht indiziert sind, dann versuchen Sie, einen Index hinzuzufügen. Wenn die Felder bereits indiziert sind, dann versuchen Sie, den Index zu löschen und erneut hinzuzufügen, um Probleme mit dem Index zu beheben. Mit dem Parameter Join-Felder indizieren können Sie Indizes während der Ausführung des Werkzeugs verwalten.

Parameter

BeschriftungErläuterungDatentyp
Eingabetabelle

Die Tabelle oder die Feature-Class, mit der die Join-Tabelle verbunden wird.

Mosaic Layer; Raster Layer; Table View
Eingabefeld

Das Feld in der Eingabetabelle, auf dem die Verbindung basieren soll.

Field
Join-Tabelle

Die Tabelle, die mit der Eingabetabelle verbunden werden soll.

Mosaic Layer; Raster Layer; Table View
Join-Feld

Das Feld in der Join-Tabelle, das die Werte enthält, auf denen die Verbindung basiert.

Field
Felder übertragen
(optional)

Die Felder aus der Join-Tabelle, die in die Eingabetabelle übertragen werden, basierend auf einer Verbindung zwischen der Eingabetabelle und der Join-Tabelle.

Field
Übertragungsmethode
(optional)

Gibt an, wie Join-Felder und Feldtypen in die Ausgabe übertragen werden.

  • Übertragungsfelder auswählenFelder und Feldtypen aus der verbundenen Tabelle werden in die Ausgabe übertragen. Dies ist die Standardeinstellung.
  • Feldzuordnung verwendenDie Übertragung von Feldern und Feldtypen aus der verbundenen Tabelle in die Ausgabe wird mit dem Parameter Feldzuordnung gesteuert.
String
Feldzuordnung
(optional)

Die Felder, die vorübergehend mit ihren jeweiligen Eigenschaften und Quellfeldern mit der Eingabetabelle verbunden werden sollen. Alle Felder von der Join-Tabelle werden standardmäßig einbezogen.

Verwenden Sie die Feldzuordnung, um Felder hinzuzufügen, zu löschen, umzubenennen und neu anzuordnen sowie andere Feldeigenschaften zu ändern.

Die Feldzuordnung kann verwendet werden, um Werte aus zwei oder mehr Eingabefeldern in einem einzigen Ausgabefeld zu kombinieren.

Field Mappings
Join-Felder indizieren
(optional)

Gibt an, ob dem Eingabefeld und dem Join-Feld Attributindizes hinzugefügt werden sollen.

  • Keine Indizes hinzufügenEs werden keine Attributindizes hinzugefügt. Dies ist die Standardeinstellung.
  • Einen Attributindex für Felder ohne vorhandenen Index hinzufügenEs werden Felder und Feldtypen aus der verbundenen Tabelle in die Ausgabe übertragen. Vorhandene Attributindizes bleiben erhalten.
  • Indizes für alle Felder ersetzenEs werden Felder und Feldtypen aus der verbundenen Tabelle in die Ausgabe übertragen. Vorhandene Attributindizes werden ersetzt.
String

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Aktualisierte Eingabetabelle

Das aktualisierte Eingabe-Dataset.

Table View; Raster Layer; Mosaic Layer

arcpy.management.JoinField(in_data, in_field, join_table, join_field, {fields}, {fm_option}, {field_mapping}, {index_join_fields})
NameErläuterungDatentyp
in_data

Die Tabelle oder die Feature-Class, mit der die Join-Tabelle verbunden wird.

Mosaic 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 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 Eingabetabelle übertragen werden, basierend auf einer Verbindung zwischen der Eingabetabelle und der Join-Tabelle.

Field
fm_option
(optional)

Gibt an, wie Join-Felder und Feldtypen in die Ausgabe übertragen werden.

  • NOT_USE_FMFelder und Feldtypen aus der verbundenen Tabelle werden in die Ausgabe übertragen. Dies ist die Standardeinstellung.
  • USE_FMDie Übertragung von Feldern und Feldtypen aus der verbundenen Tabelle in die Ausgabe wird mit dem Parameter field_mapping gesteuert.
String
field_mapping
(optional)

Die Felder, die vorübergehend mit ihren jeweiligen Eigenschaften und Quellfeldern mit der Eingabetabelle verbunden werden sollen. Alle Felder von der Join-Tabelle werden standardmäßig einbezogen.

Verwenden Sie die Feldzuordnung, um Felder hinzuzufügen, zu löschen, umzubenennen und neu anzuordnen sowie andere Feldeigenschaften zu ändern.

Die Feldzuordnung kann verwendet werden, um Werte aus zwei oder mehr Eingabefeldern in einem einzigen Ausgabefeld zu kombinieren.

In Python verwenden Sie die FieldMappings-Klasse zum Definieren dieses Parameters.

Field Mappings
index_join_fields
(optional)

Gibt an, ob dem Eingabefeld und dem Join-Feld Attributindizes hinzugefügt werden sollen.

  • NO_INDEXESEs werden keine Attributindizes hinzugefügt. Dies ist die Standardeinstellung.
  • NEW_INDEXESEs werden Felder und Feldtypen aus der verbundenen Tabelle in die Ausgabe übertragen. Vorhandene Attributindizes bleiben erhalten.
  • REPLACE_INDEXESEs werden Felder und Feldtypen aus der verbundenen Tabelle in die Ausgabe übertragen. Vorhandene Attributindizes werden ersetzt.
String

Abgeleitete Ausgabe

NameErläuterungDatentyp
out_layer_or_view

Das aktualisierte Eingabe-Dataset.

Table View; Raster Layer; Mosaic Layer

Codebeispiel

JoinField – Beispiel 1 (PythonPython-Fenster)

Das folgende Skript für das Python-Fenster veranschaulicht, wie die Funktion JoinField im unmittelbaren Modus verwendet wird.

import arcpy
arcpy.env.workspace = "C:/data/data.gdb"
arcpy.management.JoinField("zion_park", "zonecode", "zion_zoning", "zonecode", 
                           ["land_use", "land_cover"])
JoinField: Beispiel 2 (eigenständiges Skript)

In diesem eigenständigen Python-Skript wird veranschaulicht, wie die JoinField-Funktion zum Verbinden einer Tabelle mit einer Feature-Class verwendet wird, wobei nur zwei der Tabellenfelder in der Verbindung berücksichtigt werden.

# PermanentJoin.py
# Purpose: Join two fields from a table to a feature class 

# Import system modules
import arcpy

# Set the current workspace 
arcpy.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.management.JoinField(inFeatures, joinField, joinTable, joinField, 
                           fieldList)

Verwandte Themen