====== Verknüpfung zweier (Attribut-)Tabellen (SpatialJoin) ====== Zum ausprobieren: {{:qgis:basic:dataset:uebung_spatialjoin.zip|Übung SpatialJoin (GeoPackage)}} [{{ :qgis:basic:images:spatial_join_verknuepfung_qgis318.png?direct&300|**Abb. 1:** Vektorverknüpfung hinzufügen (QGIS 3.18)}}] Da wir es bei Geodaten auch immer mit **Tabellen** zu tun haben, liegt es nahe, diese miteinander in **Verbindung** zu bringen. QGIS ermöglicht **Verbindungen zwischen Tabellen mit und ohne Geometrien**. So können zum Beispiel die Informationen einer (geometrielosen) csv-Tabelle((auch Exceltabellen oder OpenOffice/LibreOffice-Tabellen sind möglich!)) über ein eindeutiges **Schlüsselfeld (Primärschlüssel)** mit der **Attributtabelle** eines Vektorlayers verbunden und damit die Geometrien (Features) mit den Informationen aus der Tabelle angereichert werden. Mit der hier beschriebenen Funktion der "Verknüpfungen" lässt sich zwar ein //datenbankähnlicher// Zustand erreichen da man beliebig viele Verknüpfungen erzeugen kann aber es sind lediglich nur **1zu1 Beziehungen** möglich. Möchte man **1:n** oder **n:n**-Beziehungen erzeugen, so funktioniert das über "Beziehungen" in den Projekteigenschaften: ''Projekt -> Eigenschaften -> Beziehungen'' ===== Und so geht's...===== Man öffnet die ''Layereigenschaften'' des Layers, welcher angereichert werden soll((im Beispiel wäre das der Bundeslandlayer)) und wählt ''Verknüpfungen''. Zum Hinzufügen einer neuen Verbindung klicken Sie auf das ''Plus-Symbol''. Es öffnet sich das Fenster ''Vektorverknüpfung hinzufügen'' (Abb. 1). Wählen Sie die zu verknüpfende (Attribut-)Tabelle und das entsprechende **Verknüpfungsfeld** und das **Zielfeld**, welches beide Layer **gemeinsam haben müssen** (**Primärschlüssel**). Es können **beliebig viele Verbindungen** zwischen Attributtabellen und geometrielosen Tabellen (csv, dbf, odb, xls, xlsx etc.) aber auch zwischen **Attributlayer <-> Attributlayer** oder **Tabelle <-> Tabelle** eingehen. {{ :qgis:basic:images:spatial_join_primarykey_qgis318.png |}} ==== Die Bedeutung der Parameter ==== Es stehen über das Verknüpfungsfenster viele nützliche Optionen zur Verfügung, deren Bedeutung im Folgenden erläutert werden sollen: ^ Parameter ^ Bedeutung ^ ^ Verknüpfung im Speicher cachen | Werte werden im Zwischenspeicher des PCs abgelegt und sind damit schneller verfügbar | ^ Attributindex auf Verknüpfungsfeld erzeugen | Schnelleres Finden von Tabellenzeilen dank Index(("Ein Index ist eine von der Datenstruktur getrennte Indexstruktur in einer Datenbank, die die Suche und das Sortieren nach bestimmten Feldern beschleunigt" [[wpde>Datenbankindex]])) | ^ Dynamische Form | Werte werden bei Änderung des verknüpften Layer automatisch neu geladen | ^ Änderbarer verknüpfter Layer | Die Werte der Ursprungs-Tabelle oder -Layer kann im Verknüfungslayer geändert werden, sofern sich dieser im Bearbeitungsmodus befindet(( ggf. muss ein anderes Tabellenformat gewählt werden, da sich nicht alle Tabellenformate von QGIS editieren lassen )) | ^ Einfügen/Aktualisieren bei Änderung | Fügt automatische eine passende Zeile zur verknüpften Tabelle hinzu, falls diese nicht existiert | ^ Kaskadierendes Löschen | Verknüpfte Zeilen werden in Tabelle UND Layer gelöscht **(Achtung!)** | ^ Verknüpfte Felder | Wählen Sie die Felder, die verknüpft werden sollen | ^ Benutzerfeldnamenpräfix | Verknüpfte Felder erhalten den hier angebenden Präfix | **Verknüpfte Felder** können **nicht** über den Ausgangslayer **verändert/bearbeitet** werden, wenn dieser sich nicht im Bearbeitungsmodus befindet! ---- ~~DISCUSSION|Fragen, Hinweise und Fehler kommen hier hin:~~