Karriere-Route

SQL-JOINs lernen: Tabellen sinnvoll verknüpfen

INNER JOIN oder LEFT JOIN? Ein kleines eigenes Kunden-Beispiel zeigt passende Schlüssel, fehlende Treffer und den Unterschied zwischen Zeilen und Personen.

Du kannst eine Tabelle filtern und möchtest nun Daten aus zwei Tabellen zusammenbringen. Dabei ist der wichtigste Schritt nicht das Merken eines neuen Schlüsselworts. Du musst verstehen, welche Zeilen zusammengehören und was mit Datensätzen ohne passenden Partner geschehen soll.

Mit einem kleinen Datenbestand beginnen

Für ein eigenes Beispiel enthält die Kundentabelle drei Personen mit den Kennungen 1, 2 und 3. Eine zweite Tabelle enthält drei Bestellungen: zwei für Kennung 1 und eine für Kennung 2. Kennung 3 hat keine Bestellung. Die Kennung stellt hier die fachlich festgelegte Zuordnung her; ein gleicher Vorname wäre kein verlässlicher Ersatz.

Verknüpfst du beide Tabellen passend über diesen Schlüssel mit einem INNER JOIN, entstehen drei Ergebniszeilen. Das bedeutet nicht drei bestellende Personen: Die Person mit Kennung 1 erscheint wegen ihrer zwei Bestellungen zweimal. Wer anschließend einfach Ergebniszeilen zählt, beantwortet möglicherweise eine andere Frage als beabsichtigt.

Fehlende Bestellungen sichtbar lassen

Ein LEFT JOIN von Kunden auf Bestellungen kann zusätzlich die Person ohne Bestellung erhalten. Im Beispiel ergeben sich vier Zeilen: zwei für Kennung 1, eine für Kennung 2 und eine ohne passende Bestelldaten für Kennung 3. Die fehlenden Werte müssen als solche behandelt werden, nicht als erfundene Bestellung mit dem Betrag null.

Eine anschließende WHERE-Bedingung kann dieses Ergebnis wieder verändern. Prüfst du dort nur eine Eigenschaft der Bestelltabelle, können Zeilen ohne Partner herausfallen. Kontrolliere deshalb nicht allein die Schreibweise des JOINs, sondern auch die Wirkung späterer Bedingungen.

Das Ergebnis vor der Abfrage vorhersagen

Zeichne die zwei kleinen Tabellen auf Papier und verbinde die passenden Kennungen. Schreibe auf, welche Zeilen du erwartest. Führe dann dieselbe Abfrage in einer lokalen Übungsdatenbank aus und vergleiche. Eine Abweichung ist ein Anlass zur Untersuchung, nicht zum nachträglichen Anpassen deiner Erwartung an eine ungeprüfte Ausgabe.

Dieser Einstieg ersetzt keinen vollständigen Datenbankkurs. Im Programmvergleich solltest du nach eigenen Abfragen, Testdaten und betreuter Fehlersuche fragen. Weitere Aufgaben zum begründeten Auswerten von Daten findest du in der Learning Zone.

Passende Ratgeber und Programme

Offizielle Quellen