Terra SQLVerknüpfen von Daten
inf-schule
Zurück 3.1.2.6 Weiter

3.1.2.6

Fachkonzept SQL Join

Ein Join verbindet Datensätze aus mehreren Tabellen. Die Verbindung entsteht nicht automatisch, sondern durch eine explizite Joinbedingung.

Drei Schritte

1. Tabellen auswählen: Im FROM Teil stehen alle Tabellen, deren Daten gebraucht werden.

2. Verbindung angeben: Die Joinbedingung vergleicht Fremdschlüssel und Primärschlüssel.

3. Ergebnis einschränken: Zusätzliche Bedingungen filtern die bereits passend verbundenen Datensätze.

Musterform

Diese Form verbindet Länder mit ihren Kontinenten und filtert anschließend auf Asien.

SELECT land.Name, land.Einwohner, kontinent.Name
FROM land, kontinent
WHERE land.KNR = kontinent.KNR
  AND kontinent.Name = 'Asien'
ORDER BY land.Einwohner DESC;

Cross Join gegen Inner Join

Ohne Joinbedingung entsteht ein Kreuzprodukt. Mit Joinbedingung bleiben nur passende Kombinationen übrig.

Merksatz

Ein Inner Join liefert nur Datensätze, bei denen die Verbindung zwischen den Tabellen passt.

Cross Join
ohne Verbindung
Inner Join
mit Joinbedingung

Denkfalle: interne Schlüsselwerte filtern

Bedingungen wie land.KNR = 'EU' funktionieren zwar technisch, hängen aber an einem internen Wert. Besser ist die fachliche Bedingung über die verknüpfte Tabelle.

Fachlich stabiler

Die Abfrage beschreibt sichtbar, dass Europa gemeint ist. Der interne Schlüssel bleibt eine Verbindung, nicht der eigentliche Inhalt der Bedingung.

SELECT land.Name
FROM land, kontinent
WHERE land.KNR = kontinent.KNR
  AND kontinent.Name = 'Europa';

inf-schule Terra 3.1.2.6