Verbindung hinzufügen (Data Management)

Zusammenfassung

Verbindet einen Layer mit einem anderen Layer oder einer Tabelle auf Basis eines gemeinsamen Feldes. Feature-Layer, Tabellensichten und Raster-Layer mit einer Raster-Attributtabelle werden unterstützt.

Die Datensätze aus der Join-Tabelle werden den Datensätzen aus der Eingabetabelle zugeordnet. Eine Übereinstimmung tritt auf, wenn das Join-Feld der Eingabe und das Feld der Join-Tabelle dieselben Werte aufweisen. Diese Verbindung ist temporär.

Abbildung

Verbindung hinzufügen

Verwendung

  • Die Eingabe muss ein Feature-Layer, eine Tabellensicht oder ein Raster-Layer mit einer Attributtabelle sein.

  • Wenn es sich bei der Eingabe um eine Feature-Class oder einen Dataset-Pfad handelt, wird von diesem Werkzeug mit dem Ergebnis des angewendeten Werkzeugs automatisch ein neuer Layer erstellt und zurückgegeben.

  • Datensätze aus der Join-Tabelle können mehr als einem Datensatz aus dem Eingabe-Layer oder der Tabellensicht zugeordnet werden.

  • Beim Verbinden von Tabellen werden mit der Standardoption alle Datensätze beibehalten. Wenn ein Datensatz der Zieltabelle keine Entsprechung in der Join-Tabelle besitzt, erhält dieser Datensatz Nullwerte für alle Felder, die aus der Join-Tabelle an die Zieltabelle angehängt werden.

    Beispiel für das Beibehalten aller Datensätze beim Verbinden

    Wenn die Option "Nur passende Datensätze beibehalten" aktiviert ist, wird ein Datensatz aus der erstellten Zieltabelle entfernt, wenn für diesen Datensatz keine Entsprechung in der Join-Tabelle vorhanden ist. Wenn die Zieltabelle der Attributtabelle eines Layers entspricht, werden Features, die keine verbundenen Daten aufweisen, nicht auf der Karte angezeigt.

    Beispiel für das ausschließliche Beibehalten von passenden Datensätzen beim Verbinden

  • Der Eingabe-Layer oder die Tabellensicht muss ein ObjectID-Feld aufweisen. Die Join-Tabelle muss kein ObjectID-Feld enthalten.

  • Feldeigenschaften, wie Aliasnamen, Sichtbarkeit und Zahlenformatierung, werden beim Hinzufügen oder Entfernen von Verbindungen beibehalten.

  • Wenn bereits ein Join mit dem gleichen Tabellennamen vorhanden ist - wenn z. B. Layer A mit Tabelle B verbunden ist - dann wird beim erneuten Ausführen des Werkzeugs für ein Join mit Tabelle B eine Warnung ausgegeben, dass der Join bereits vorhanden ist.

  • Die Verbindung besteht nur für die Dauer der Sitzung. Wenn Sie die Verbindung für weitere Sitzungen beibehalten möchten, speichern Sie den Layer mit dem Werkzeug In Layer-Datei speichern als Layer-Datei. Dies gilt jedoch nur für Layer. Tabellensichten können auf diese Weise nicht gespeichert werden.

  • Im resultierenden Layer bzw. der resultierenden Tabellensicht erhalten die Felder des Eingabe-Layers oder der Tabellensicht ein Präfix aus dem Namen der Eingabe und einem Punkt (.). Alle Felder aus der Join-Tabelle erhalten standardmäßig ein Präfix bestehend aus dem Namen der Join-Tabelle und einem Punkt.

    • Beispiel: Sie verbinden den Layer "landuse", der die Felder A und B enthält, mit der Tabellensicht "lookup_tab", die die Felder C und D enthält. Der resultierende Layer bzw. die resultierende Tabellensicht enthält die folgenden Felder: landuse.A, landuse.B, lookup_tab.C und lookup_tab.D.
    • Für Coverage-Feature-Classes und INFO-Tabellen wird als Trennzeichen für Tabelle und Feldname ein Doppelpunkt (:) statt eines Punktes verwendet.

  • Um eine bleibende Verbindung herzustellen, können Sie das Werkzeug Feld verbinden verwenden. Sie können die Verbindung auch dadurch permanent machen, dass Sie den verbundenen Feature-Layer als neue Feature-Class bzw. die verbundene Tabellensicht als neue Tabelle speichern. Beim Speichern von Ergebnissen in einer neuen Feature-Class oder Tabelle können Sie die Umgebungseinstellung Vollständig qualifizierte Feldnamen verwenden, um zu steuern, ob die Feldnamen in der verbundenen Ausgabe durch den Namen der Tabelle, aus der das Feld stammt, spezifiziert werden sollen.

  • Die Indizierung der Felder in dem Eingabe-Layer bzw. der Tabellensicht und Join-Tabelle, auf denen die Verbindung basiert, kann zu einer Performance-Steigerung beitragen. Dies kann mit dem Werkzeug Attributindex hinzufügen erfolgen.

  • Wenn die Felder des Eingabe-Layers oder der Tabellensicht mit dem Parameter Feld-Info im Werkzeug Feature-Layer erstellen oder Tabellensicht erstellen geändert (umbenannt oder ausgeblendet) wurden, werden diese Feldänderungen nicht in die Ausgabe des verbundenen Layers oder der verbundenen Tabellensicht übernommen.

  • Die Definitionsabfrage der Join-Tabelle wird auf den Eingabe-Layer oder die Tabellensicht angewendet. Die Definitionsabfrage kann mit dem Werkzeug Verbindung entfernen oder manuell durch das Entfernen der Definitionsabfrage aus dem Layer entfernt werden.

  • 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 dieses Werkzeugs eine Schaltfläche zum Überprüfen der Verbindung verfügbar.

Syntax

AddJoin(in_layer_or_view, in_field, join_table, join_field, {join_type})
ParameterErklärungDatentyp
in_layer_or_view

Der Layer oder die Tabellensicht, mit dem bzw. der die Join-Tabelle verbunden wird.

Mosaic Layer; Raster Layer; Table View
in_field

Das Feld im Eingabe-Layer oder der Tabellensicht, auf dem die Verbindung basiert.

Field
join_table

Die Tabelle oder Tabellensicht, mit der der Eingabe-Layer oder die Tabellensicht verbunden wird.

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
join_type
(optional)

Gibt an, ob nur die Datensätze der Eingabe, die einer Zeile in der Join-Tabelle entsprechen, in die Ausgabe übernommen werden.

  • KEEP_ALLAlle Datensätze im Eingabe-Layer oder der Tabellensicht werden in die Ausgabe übernommen. Dies wird auch als "Outer Join" bezeichnet. Dies ist die Standardeinstellung.
  • KEEP_COMMONEs werden nur die Datensätze der Eingabe, die einer Zeile in der Join-Tabelle entsprechen, in die Ausgabe übernommen. Dies wird auch als "Inner Join" bezeichnet.
Boolean

Abgeleitete Ausgabe

NameErklärungDatentyp
out_layer_or_view

Das aktualisierte Eingabe-Dataset.

Tabellensicht; Raster-Layer; Mosaik-Layer

Codebeispiel

AddJoin – Beispiel 1 (Python-Fenster)

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

import arcpy
arcpy.env.workspace = "C:/data/Habitat_Analysis.gdb"
veg_joined_table = arcpy.AddJoin_management("vegetation", "HOLLAND95", 
                                            "vegtable", "HOLLAND95")
arcpy.CopyFeatures_management(veg_joined_table, "vegjoin")
AddJoin – Beispiel 2 (eigenständiges Skript)

Dieses eigenständige Skript zeigt die Funktion AddJoin als Teil eines Workflows, um eine Tabelle mit einer Feature-Class zu verbinden und dann die gewünschten Features zu extrahieren.

# Name: AttributeSelection.py
# Purpose: Join a table to a featureclass and select the desired attributes
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data/Habitat_Analysis.gdb"
arcpy.env.qualifiedFieldNames = False
# Set local variables
inFeatures = "vegtype"
joinTable = "vegtable"
joinField = "HOLLAND95"
expression = "vegtable.HABITAT = 1"
outFeature = "vegjoin"
# Join the feature layer to a table
veg_joined_table = arcpy.AddJoin_management(inFeatures, joinField, joinTable, 
                                            joinField)
# Select desired features from veg_layer
arcpy.SelectLayerByAttribute_management(veg_joined_table, "NEW_SELECTION", 
                                        expression)
# Copy the layer to a new permanent feature class
arcpy.CopyFeatures_management(veg_joined_table, outFeature)

Lizenzinformationen

  • Basic: Ja
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen