Ein Outer Join ist ein Begriff aus der Datenbankabfrage (meist in SQL) und bezeichnet eine spezielle Art, zwei Tabellen miteinander zu verknüpfen – auch dann, wenn keine passenden Datensätze in einer der Tabellen vorhanden sind.
LEFT OUTER JOIN (oder einfach: LEFT JOIN):
→ Gibt alle Datensätze aus der linken Tabelle zurück, auch wenn es keine passenden Datensätze in der rechten Tabelle gibt.
→ Nicht passende Werte aus der rechten Tabelle werden mit NULL aufgefüllt.
RIGHT OUTER JOIN (oder: RIGHT JOIN):
→ Gibt alle Datensätze aus der rechten Tabelle zurück, auch wenn es keine passenden in der linken gibt.
→ Nicht passende Werte aus der linken Tabelle werden mit NULL ergänzt.
FULL OUTER JOIN:
→ Gibt alle Datensätze aus beiden Tabellen zurück.
→ Wo keine Übereinstimmung vorliegt, wird mit NULL ergänzt.
Angenommen, du hast zwei Tabellen:
Kunden
| Kundennr | Name |
| 1 | Anna |
| 2 | Bernd |
| 3 | Clara |
Bestellungen
| Bestellnr | Kundennr | Produkt |
| 101 | 2 | Buch |
| 102 | 4 | Lampe |
| Kundennr | Name | Bestellnr | Produkt |
|---|---|---|---|
| 1 | Anna | NULL | NULL |
| 2 | Bernd | 101 | Buch |
| 3 | Clara | NULL | NULL |
Ein INNER JOIN ist ein Begriff aus der Datenbankabfrage (SQL). Er wird verwendet, um Datensätze aus zwei (oder mehr) Tabellen zu kombinieren – und zwar nur die Datensätze, bei denen es in beiden Tabellen passende Werte gibt.
Du hast zwei Tabellen:
Tabelle: Kunden
| KundenID | Name |
|---|---|
| 1 | Anna |
| 2 | Bernd |
| 3 | Clara |
Tabelle: Bestellungen
| BestellID | KundenID | Produkt |
|---|---|---|
| 101 | 1 | Buch |
| 102 | 2 | Laptop |
| 103 | 4 | Handy |
Jetzt willst du wissen, welche Kunden Bestellungen gemacht haben. Dafür brauchst du nur die Kunden, die in beiden Tabellen vorkommen.
SELECT Kunden.Name, Bestellungen.Produkt
FROM Kunden
INNER JOIN Bestellungen ON Kunden.KundenID = Bestellungen.KundenID;
| Name | Produkt |
|---|---|
| Anna | Buch |
| Bernd | Laptop |
Clara hat nichts bestellt → wird nicht angezeigt.
Die Bestellung mit KundenID 4 hat keinen passenden Kunden → wird ebenfalls ignoriert.
Ein INNER JOIN zeigt nur die Datensätze, bei denen es Übereinstimmungen in beiden Tabellen gibt.