FULL OUTER JOIN ·
COALESCE ·
LEFT/RIGHT JOIN ·
NULL-Behandlung ·
Performance
Der FULL OUTER JOIN kombiniert die Ergebnisse von LEFT JOIN und RIGHT JOIN – er liefert alle Datensätze aus beiden Tabellen, auch wenn keine Übereinstimmung in der anderen Tabelle existiert.
FULL OUTER JOIN (oder kurz FULL JOIN) kombiniert LEFT JOIN und RIGHT JOIN. Er liefert alle Datensätze aus beiden Tabellen – sowohl übereinstimmende als auch nicht übereinstimmende. Fehlende Werte werden mit NULL aufgefüllt.
FULL OUTER JOIN nativ (z.B. MySQL). Für MySQL gibt es Workarounds mit LEFT JOIN + RIGHT JOIN + UNION.
Syntax-Optionen für FULL OUTER JOIN: ON (explizite Bedingung), USING (bei gleichen Spaltennamen) und NATURAL (automatisch – selten empfohlen).
USING anstelle von ON, wenn die Join-Spalten in beiden Tabellen den gleichen Namen haben – das entfernt doppelte Spalten im Ergebnis. NATURAL JOIN ist oft zu unvorhersehbar und wird nicht empfohlen.
LEFT JOIN liefert alle Datensätze der linken Tabelle, RIGHT JOIN alle der rechten. FULL JOIN kombiniert beide – er liefert alle Datensätze aus beiden Tabellen.
| JOIN-Typ | Ergebnis | Typische Verwendung |
|---|---|---|
| INNER JOIN | Nur Datensätze mit Übereinstimmung in beiden Tabellen | Stammdaten abfragen |
| LEFT JOIN | Alle aus linker Tabelle + passende aus rechter | Fehlende Verknüpfungen finden |
| RIGHT JOIN | Alle aus rechter Tabelle + passende aus linker | Selten verwendet (LEFT reicht meist) |
| FULL OUTER JOIN | Alle aus beiden Tabellen | Vollständigen Datensatzabgleich |
RIGHT JOIN können Sie meist durch LEFT JOIN ersetzen, indem Sie die Tabellen vertauschen. FULL JOIN ist nützlich, wenn Sie wirklich alle Datensätze aus beiden Tabellen benötigen.
NULL-Behandlung ist bei FULL OUTER JOIN besonders wichtig, da viele Spalten NULL sein können. COALESCE ersetzt NULL-Werte durch einen Standardwert, IS NULL filtert nach nicht übereinstimmenden Datensätzen.
COALESCE(wert1, wert2, wert3) gibt den ersten nicht-NULL-Wert zurück. Das ist ideal für aussagekräftige Berichte mit FULL OUTER JOIN.
Performance von FULL OUTER JOIN: Nicht alle Datenbanken unterstützen FULL JOIN nativ (z.B. MySQL). Der UNION-Workaround kann bei großen Tabellen teuer sein. Indizes auf den Join-Spalten sind entscheidend.
| Datenbank | FULL OUTER JOIN | Alternative |
|---|---|---|
| PostgreSQL | ✅ Ja | — |
| SQL Server | ✅ Ja | — |
| Oracle | ✅ Ja (mit (+)) | — |
| SQLite | ❌ Nein | LEFT + RIGHT + UNION |
| MySQL | ❌ Nein | LEFT + RIGHT + UNION |
UNION-Workaround. Achten Sie auf Indizes auf den Join-Spalten – das verbessert die Performance erheblich.
Praxis-Beispiele zeigen typische Anwendungen von FULL OUTER JOIN – von Datenabgleichen über Migrationsberichte bis zu vollständigen Übersichten.
CASE und COALESCE erstellen Sie aussagekräftige Berichte.
FULL JOIN
USING
LEFT/RIGHT
UNION
COALESCE
Datenabgleich
SELECT * FROM tabelle_a FULL JOIN tabelle_b ON a.id = b.id;