FULL JOIN
Aus FI-Wiki
FULL JOIN
Ein FULL JOIN (oder FULL OUTER JOIN) kombiniert die Ergebnisse eines LEFT JOIN und eines RIGHT JOIN. Er liefert **alle Datensätze aus beiden Tabellen**, unabhängig davon, ob passende Einträge existieren. Wo keine Übereinstimmung vorhanden ist, werden die fehlenden Werte mit NULL ergänzt.
Der FULL JOIN wird verwendet, wenn man einen vollständigen Überblick über beide Tabellen benötigt.
Grundsyntax
SELECT *
FROM tabelle1
FULL JOIN tabelle2
ON tabelle1.id = tabelle2.fk_id;
(Hinweis: MySQL unterstützt FULL JOIN nicht direkt – dort nutzt man UNION aus LEFT und RIGHT JOIN.)
Beispiel
kunden
| kd_id | name |
|---|---|
| 1 | Anna |
| 2 | Max |
| 4 | Tom |
bestellungen
| bs_id | kd_id | betrag |
|---|---|---|
| 10 | 1 | 59.90 |
| 11 | 2 | 29.50 |
| 12 | 3 | 15.00 |
Abfrage:
SELECT name, betrag
FROM kunden
FULL JOIN bestellungen
ON kunden.kd_id = bestellungen.kd_id;
Ergebnis
| name | betrag |
|---|---|
| Anna | 59.90 |
| Max | 29.50 |
| NULL | 15.00 |
| Tom | NULL |
Erklärung:
- Bestellung ohne passenden Kunden (kd_id = 3) → NULL bei name
- Kunde ohne Bestellung (Tom) → NULL bei betrag
Eigenschaften des FULL JOIN
- zeigt alle Datensätze aus beiden Tabellen
- fehlende Werte werden jeweils mit NULL ergänzt
- sinnvoll, um vollständige Datenübersichten zu erhalten
- Kombination der Ergebnisse von LEFT JOIN und RIGHT JOIN
- nicht in allen Datenbanken direkt verfügbar
Kurzmerksatz
Der FULL JOIN liefert alle Datensätze aus beiden Tabellen und ergänzt fehlende Werte mit NULL. Er vereint LEFT und RIGHT JOIN.
