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
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.
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.
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})
Parameter | Erklärung | Datentyp |
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.
| Boolean |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_layer_or_view | Das aktualisierte Eingabe-Dataset. | Tabellensicht; Raster-Layer; Mosaik-Layer |
Codebeispiel
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")
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)
Umgebungen
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja