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.
Verwenden Sie zum Erstellen einer permanenten Verbindung das Werkzeug Feld verbinden. Sie können auch den verbundenen Layer als Eingabe für eines der folgenden Werkzeuge verwenden: Features kopieren, Zeilen kopieren, Features exportieren oder Tabelle exportieren. Beim Speichern der Ergebnisse in einer neuen Feature-Class oder Tabelle kann die Umgebungseinstellung Vollständig qualifizierte Feldnamen verwendet werden, um zu steuern, ob die verbundenen Ausgabe-Feldnamen durch den Namen der Tabelle qualifiziert werden, aus der das Feld stammt. Feld-Aliasnamen werden vom Layer in die Ausgabe übernommen, es sei denn, die Ausgabe ist ein Shapefile.
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.
Wenn von der Verbindung eine Eins-zu-Viele-Verbindung erzeugt wird, kann das Ergebnis der Verbindung in der Attributtabelle angezeigt werden. Dort gibt eine Warnmeldung an, ob die Tabelle doppelte Objekt-IDs enthält. Da viele Geoverarbeitungswerkzeuge Daten mit doppelten Objekt-IDs nicht unterstützen und das Verarbeiten solcher Daten zu unerwarteten Ergebnissen führen kann, sollten Sie den verbundenen Layer zuerst mit dem Werkzeug Features exportieren in eine neue Feature-Class kopieren. Verwenden Sie dann die neue Feature-Class als Eingabe für andere Geoverarbeitungswerkzeuge.
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. Eine Eins-zu-Erster-Verbindung ist auch nur möglich, wenn jede Tabelle aus einem anderen Workspace stammt.
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.
In der letzten Tabelle weist die Eingabetabelle mehr Datensätze auf als die Join-Tabelle. Werden alle Datensätze beibehalten, führt dies dazu, dass alle übereinstimmenden Datensätze beibehalten werden und darüber hinaus auch die Datensätze aus der Eingabetabelle, die keine Übereinstimmung 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 |
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, und sie muss im selben Workspace vorliegen.
Datensätze aus der Join-Tabelle können mehreren Datensätzen zugewiesen werden, wenn in der Join-Tabelle 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 der Parameter Alle Ziel-Features 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 AllSource-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 Eingabe-Layer oder -Tabellensicht als abgeleiteter Ausgabeparameter in einem Modellwerkzeug festgelegt werden, um die verbundenen Ergebnisse anzuzeigen.
In der resultierenden Tabelle 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 Felder landuse.A, landuse.B, lookup_tab.C und lookup_tab.D.
Layer müssen eindeutige Feldnamen aufweisen. Wenn die Eingabe- und die zu verbindenden Tabellen denselben Namen haben und sich in verschiedenen Workspaces befinden, wird beim Herstellen der Verbindung ein unzureichend definierter Layer erzeugt.
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 Verbindungsergebnisse unerwartet oder unvollständig sind, überprüfen Sie, ob die Werte der Parameter Join-Tabellen-Feld und Eingabe-Join-Feld indiziert sind. Ist dies nicht der Fall, löschen Sie den Index, erstellen Sie ihn erneut, und führen Sie das Werkzeug noch einmal aus.
-
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 des 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.