FULL JOIN: Unterschied zwischen den Versionen
Aus FI-Wiki
Keine Bearbeitungszusammenfassung |
|||
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
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. | |||
Ein '''FULL JOIN''' (oder FULL OUTER JOIN) kombiniert die Ergebnisse eines LEFT JOIN und eines RIGHT JOIN. | |||
Er liefert | |||
Wo keine Übereinstimmung vorhanden ist, werden die fehlenden Werte mit '''NULL''' ergänzt. | Wo keine Übereinstimmung vorhanden ist, werden die fehlenden Werte mit '''NULL''' ergänzt. | ||
Der FULL JOIN wird verwendet, wenn man einen | Der FULL JOIN wird verwendet, wenn man einen '''vollständigen Überblick über beide Tabellen''' benötigt. | ||
== Grundsyntax == | |||
<syntaxhighlight lang="sql"> | <syntaxhighlight lang="sql"> | ||
SELECT * | SELECT * | ||
| Zeile 17: | Zeile 15: | ||
(Hinweis: MySQL unterstützt FULL JOIN nicht direkt – dort nutzt man UNION aus LEFT und RIGHT JOIN.) | (Hinweis: MySQL unterstützt FULL JOIN nicht direkt – dort nutzt man UNION aus LEFT und RIGHT JOIN.) | ||
== Beispiel == | |||
'''kunden''' | '''kunden''' | ||
{| class="wikitable" style="text-align:center;" | {| class="wikitable" style="text-align:center;" | ||
| Zeile 65: | Zeile 63: | ||
* Kunde ohne Bestellung (Tom) → '''NULL bei betrag''' | * Kunde ohne Bestellung (Tom) → '''NULL bei betrag''' | ||
== Eigenschaften des FULL JOIN == | |||
* zeigt '''alle Datensätze aus beiden Tabellen''' | * zeigt '''alle Datensätze aus beiden Tabellen''' | ||
* fehlende Werte werden jeweils mit '''NULL''' ergänzt | * fehlende Werte werden jeweils mit '''NULL''' ergänzt | ||
| Zeile 72: | Zeile 70: | ||
* nicht in allen Datenbanken direkt verfügbar | * 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.''' | '''Der FULL JOIN liefert alle Datensätze aus beiden Tabellen und ergänzt fehlende Werte mit NULL. Er vereint LEFT und RIGHT JOIN.''' | ||
Aktuelle Version vom 12. Januar 2026, 13:12 Uhr
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.
