| Typ | Quelle |
|---|---|
| Rohdatei | sources/sql.pdf (nur lokal, per .gitignore vom Repository ausgeschlossen) |
| Autor | unbekannt (Lehrbuchseite), handschriftliche Notizen vom Nutzer |
| Datum_quelle | unbekannt |
| Format | PDF mit einem Foto (eine Seite) |
| Erstellt | 2026-09-27 |
| Aktualisiert | 2026-09-27 |
| Tags | sql, datenbank, join |
Foto einer Lehrbuchseite mit eigenen Notizen und Leuchtstift-Markierungen: Left, Right und Full Outer Join am selben Beispiel R(A, B) und S(B, C), mit den Ergebnistabellen und den NULL-Werten für fehlende Partner.
Die Seite stammt aus einem gedruckten Lehrbuch (Titel und Autor sind auf dem Foto nicht erkennbar). Auf Entscheid des Nutzers vom 2026-09-27 liegt die PDF nur lokal in sources/ und ist per .gitignore vom Repository ausgeschlossen.
Aufbau der Quelle
- Drei Abschnitte „Beispiel: Left-Outer-Join“, „Right-Outer-Join“ und „Full-Outer-Join“, jeweils mit der SQL-Abfrage, der gedruckten Ergebnistabelle und daneben von Hand gezeichneten Tabellen R und S. Passende Werte von B sind eingekreist, Zeilen ohne Partner farbig markiert und mit „Null“ beschriftet.
- Ausgangstabellen: R(A, B) = (a1, b1), (a1, b2), (a2, b3) und S(B, C) = (b1, c1), (b3, c1), (b3, c2), (b4, c2), (b5, c3). Verbunden wird über die gemeinsame Spalte B.
Kernaussagen
- Left Outer Join (
SELECT * FROM R LEFT OUTER JOIN S): Alle Zeilen von R bleiben erhalten. Für b2 gibt es in S keinen Partner („b2 in S nicht vorhanden!“), deshalb ist C dort NULL. Ergebnis: 4 Zeilen (SQL-Join). - Right Outer Join: Alle Zeilen von S bleiben erhalten. b4 und b5 kommen in R nicht vor, deshalb ist A dort NULL. Ergebnis: 5 Zeilen.
- Full Outer Join: Die Zeilen ohne Partner beider Seiten bleiben erhalten, NULL links (b4, b5) und rechts (b2). Ergebnis: 6 Zeilen.
- Die Zeile a2/b3 erscheint zweimal, weil b3 in S zweimal vorkommt: Ein Join kann Zeilen vervielfachen.
Alle drei Ergebnistabellen hat Claude am 2026-09-27 nachgeprüft, sie stimmen.
Die Abfragen lauten FROM R LEFT OUTER JOIN S ohne Join-Bedingung. Laut PostgreSQL- und MySQL-Dokumentation ist das ungültig: Richtig wäre ON R.B = S.B, USING (B) oder NATURAL LEFT OUTER JOIN (Quelle - Recherche - SQL-Joins 2026). Gemeint ist offensichtlich der Verbund über die gemeinsame Spalte B, also ein natürlicher Join.
Den Inner Join zeigt die Seite nicht. Aus denselben Tabellen ergibt er 3 Zeilen: (a1, b1, c1), (a2, b3, c1), (a2, b3, c2). Das ist genau der gemeinsame Teil aller drei Outer Joins. Die Seite verwendet die Begriffe der relationalen Algebra (Relation R, S), stammt also vermutlich aus einem Lehrbuch zu Datenbanksystemen.
Betroffene Seiten
Verwandt
- Quelle - Recherche - SQL-Joins 2026 – Definitionen aus der offiziellen Doku und einfache Lernquellen zur Ergänzung
