Der Parameterwert für die Eingabetabelle kann ein Feature-Layer, eine Tabellensicht oder ein Raster-Layer mit einer Attributtabelle sein. Wenn ein Datenpfad verwendet wird, wird der Layer mit der Verbindung erstellt. Die Verbindung verbleibt immer beim Layer, nicht in den Daten.
Um eine dauerhafte Verbindung zu erstellen, verwenden Sie entweder das Werkzeug Feld verbinden oder verwenden Sie den verbundenen Layer als Eingabe für eines der folgenden Werkzeuge: Features kopieren, Zeilen kopieren, Feature-Class in Feature-Class oder Tabelle in Tabelle.Wenn die Ergebnisse in einer neuen Feature-Class oder Tabelle gespeichert werden, kann die Umgebung Qualifizierte Feldnamen verwendet werden, um zu steuern, ob die Feldnamen in der verbundenen Ausgabe durch den Namen der Tabelle, aus der das Feld stammt, spezifiziert werden sollen.
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.
In den folgenden Tabellen sind mögliche Ergebnisse von Verbindungen mit verschiedenen Eingaben dargestellt.
Die erste Tabelle zeigt eine Verbindung des Typs "Eins-zu-Viele". Das Beibehalten von nur übereinstimmenden Datensätzen hat keine Wirkung, da alle Datensätze Übereinstimmungen aufweisen.
Eingabetabelle | Join-Tabelle | Ergebnis |
---|
Eingabefeld | Typ | Join-Feld | Wert | Eingabefeld | Typ | Join-Feld | Wert |
1 | A | 1 | 100 | 1 | A | 1 | 100 |
2 | B | 2 | 200 | 2 | B | 2 | 200 |
| 1 | 300 | 1 | A | 1 | 300 |
2 | 400 | 2 | B | 2 | 400 |
Verbindung hinzufügen – Beispiel: Eins-zu-Viele-Verbindung, wenn eine Tabelle über ein Objekt-ID-Feld verfügt
In der zweiten Tabelle wird eine Join-Tabelle ohne Objekt-ID verwendet und es ist nur eine Eins-zu-Erster-Verbindung möglich.
Eingabetabelle | Join-Tabelle | Ergebnis |
---|
Eingabefeld | Typ | Join-Feld | Wert | Eingabefeld | Typ | Join-Feld | Wert |
1 | A | 1 | 100 | 1 | A | 1 | 100 |
2 | B | 2 | 200 | 2 | B | 2 | 200 |
| 3 | 300 | |
4 | 400 |
Verbindung hinzufügen – Beispiel: Eins-zu-Erster-Verbindung, wenn keine Tabelle über ein Objekt-ID-Feld verfügt.
Schließlich die Eingabetabelle, die mehr Datensätze aufweist als die Join-Tabelle. Alle Datensätze behalten alle übereinstimmen Datensätze bei zuzüglich der Datensätze aus der Eingabetabelle, die keine Übereinstimmung aufweist.
Eingabetabelle | Join-Tabelle | Ergebnis |
---|
Eingabefeld | Typ | Join-Feld | Wert | Eingabefeld | Typ | Join-Feld | Wert |
1 | A | 1 | 100 | 1 | A | 1 | 100 |
2 | B | 2 | 200 | 2 | B | 2 | 200 |
3 | C | 1 | 300 | 1 | A | 1 | 300 |
4 | D | 2 | 400 | 2 | B | 2 | 400 |
| 3 | C | <NULL> | <NULL> |
4 | D | <NULL> | <NULL> |
Verbindung hinzufügen – Beispiel: Eins-zu-Viele-Verbindung, wenn jede Tabelle ein Objekt-ID-Feld aufweist und der Parameter Alle Ziel-Features beibehalten aktiviert ist.
Die Eingabetabelle muss ein Objekt-ID-Feld aufweisen, um eine Eins-zu-Viele-Verbindung durchzuführen.
Datensätze aus der Join-Tabelle können mehreren Datensätzen zugewiesen werden, wenn ein Objekt-ID-Feld vorliegt. Andernfalls wird eine Eins-zu-Erster-Verbindung durchgeführt.
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.
Eingabetabelle | Join-Tabelle | Ergebnis |
---|
Eingabefeld | Typ | Join-Feld | Wert | Eingabefeld | Typ | Join-Feld | Wert |
1 | A | 1 | 100 | 1 | A | 1 | 100 |
2 | B | 2 | 200 | 2 | B | 2 | 200 |
3 | C | 1 | 300 | 1 | A | 1 | 300 |
4 | D | 2 | 400 | 2 | B | 2 | 400 |
| 3 | C | <NULL> | <NULL> |
4 | D | <NULL> | <NULL> |
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.
Eingabetabelle | Join-Tabelle | Ergebnis |
---|
Eingabefeld | Typ | Join-Feld | Wert | Eingabefeld | Typ | Join-Feld | Wert |
1 | A | 1 | 100 | 1 | A | 1 | 100 |
2 | B | 2 | 200 | 2 | B | 2 | 200 |
| 3 | 300 | |
4 | 400 |
Feldeigenschaften, wie Aliasnamen, Sichtbarkeit und Zahlenformatierung, werden beim Hinzufügen oder Entfernen von Verbindungen beibehalten.
Eine Eingabetabelle darf nur eine Verbindung aufweisen.
Die Verbindung besteht nur solange der Layer vorhanden ist. Ein Layer kann beibehalten werden, indem die ArcGIS Pro-Sitzung gespeichert wird oder indem er unter Verwendung des Werkzeugs In Layer-Datei speichern in eine Layer-Datei gespeichert wird.
Damit die Ergebnisse einer in einem Skriptwerkzeug erstellten Verbindung angezeigt werden können, muss das Werkzeug den Layer als abgeleiteten Ausgabeparameter enthalten. Dementsprechend muss der Parameter Aktualisierte Eingabetabelle als abgeleiteter Ausgabeparameter in einem Modellwerkzeug festgelegt werden, um die verbundenen Ergebnisse anzuzeigen.
In der resultierenden Eingabetabelle erhalten die Felder ein Präfix, das aus dem Namen der Eingabe und einem Punkt (.) besteht. 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.
Die Indizierung der Felder in der Eingabetabelle und Join-Tabelle, auf denen die Verbindung basiert, kann zu einer Performance-Steigerung beitragen. Wenn der Parameter Verbundene Felder indizieren aktiviert ist, wird beiden Verbindungsfeldern ein Attributindex hinzugefügt. Alternativ können die einzelnen Verbindungsfelder mit dem Werkzeug Attributindex hinzufügen indiziert werden.
-
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 die Feldänderungen nicht in die Ausgabe des verbundenen Layers oder der verbundenen Tabellensicht eingebunden.
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.
Eine im Layer getroffene Auswahl wird in dem Werkzeug Verbindung hinzufügen nicht verwendet; im Werkzeug Feld verbinden hingegen wird sie verwendet.