SQL-Dojo · Tabellen verbinden (JOIN)
Drei Tabellen verbinden
Übungsaufgabe aus der Lernplattform: Aufgabenstellung hier lesen, Lösung dort schreiben und automatisch prüfen lassen.
Ein JOIN reicht oft nicht. In der Firmendatenbank steht an einer Rechnung
nur die projekt_id. Um zum Kundennamen zu kommen, musst du erst von
rechnungen zu projekte springen (über projekt_id) und dann von projekte
zu kunden (über kunde_id). Zwei Schritte, zwei JOINs.
Der Grund dafür steckt im Datenmodell: Zwischen Rechnung und Kunde gibt es keine direkte Verbindung. Es gibt sie auch bewusst nicht, denn der Kunde hängt fachlich am Projekt, und das Projekt trägt die Rechnung. Diese Kette nachzulaufen ist keine Umständlichkeit, sondern die logische Folge einer sauber normalisierten Datenbank.
Gut nachvollziehbar wird das, wenn du nicht in SQL denkst, sondern in Wegen: Du stehst bei der Rechnung und willst zum Kunden. Es gibt genau eine Route, und jede Etappe dieser Route wird später eine Zeile in deiner Abfrage. Wer die Route vorher auf Papier zieht, verheddert sich beim Schreiben deutlich seltener.
Das steckt in der vollständigen Aufgabe
- Die Kette visualisiert
- Die Tabellen
- Deine Aufgabe
Die vollständige Aufgabenstellung mit Beispieldaten, Hinweisen und erklärter Musterlösung steht in der Lernplattform.
Lernplattform
Schreib die Lösung, wir prüfen sie.
In der Lernplattform arbeitest du direkt im Browser. Deine Lösung wird automatisch geprüft, mit Hinweisen bei Fehlern und einer erklärten Musterlösung.
Weitere Aufgaben aus Tabellen verbinden (JOIN)
Alle Aufgaben- INNER JOIN: Tabellen verbinden Das ist die erste Challenge im JOIN-Track. Bevor du die Aufgabe löst, solltest du verstehen, warum es überhaupt mehrere Tabellen gibt und wie man sie wieder zusammenführt. Beides ist der Kern jeder... Leicht , Schwierigkeit 2 von 5 ca. 10 Minuten
- Projekte mit Kunden verknüpfen In der Tabelle projekte steht nur die kundeid, nicht der Kundenname. Den musst du aus der Tabelle kunden dazuholen. Klassisches Reporting-Szenario: die Chefetage will eine Projektliste mit Klarname... Leicht , Schwierigkeit 2 von 5 ca. 7 Minuten
- LEFT JOIN: alle Zeilen der linken Tabelle Beim INNER JOIN hast du gelernt: Nur Zeilen, die in beiden Tabellen einen Partner haben, bleiben im Ergebnis. Genau das ist aber oft nicht, was man will. Beispiel: "Gib mir alle Kunden mit der Anza... Leicht , Schwierigkeit 2 von 5 ca. 10 Minuten
- Fehlende Zuordnungen finden Das ist das klassische Prüfungs-Muster: "Finde alle Kunden ohne Projekt", "Finde alle Mitarbeiter ohne Zuteilung", "Finde alle Produkte ohne Bestellung". Die Antwort ist immer dieselbe Technik: LEF... Mittel , Schwierigkeit 3 von 5 ca. 10 Minuten