Ein LEFT JOIN zeigt:
👉 Alle Datensätze aus der linken Tabelle
👉 + passende Datensätze aus der rechten Tabelle
👉 + wenn es keine Übereinstimmung gibt → NULL
🔹 Beispiel-Daten #
Tabelle: Kunden #
| KundenID | Name |
|---|---|
| 1 | Müller |
| 2 | Schmidt |
| 3 | Weber |
Tabelle: Bestellungen #
| BestellungID | KundenID | Produkt |
|---|---|---|
| 101 | 1 | Laptop |
| 102 | 1 | Maus |
| 103 | 2 | Tastatur |
🔹 Ziel #
👉 Alle Kunden anzeigen
👉 + ihre Bestellungen (falls vorhanden)
🔹 SQL-Befehl #
SELECT Kunden.Name, Bestellungen.Produkt
FROM Kunden
LEFT JOIN Bestellungen
ON Kunden.KundenID = Bestellungen.KundenID;
🔹 Schritt-für-Schritt Erklärung #
1. FROM Kunden #
👉 Startpunkt = linke Tabelle
2. LEFT JOIN Bestellungen #
👉 Rechte Tabelle wird „angehängt“
3. ON Kunden.KundenID = Bestellungen.KundenID #
👉 Verknüpfung:
- gleiche KundenID → gehört zusammen
🔹 Ergebnis #
| Name | Produkt |
|---|---|
| Müller | Laptop |
| Müller | Maus |
| Schmidt | Tastatur |
| Weber | NULL |
🔹 Warum ist „Weber“ dabei? #
👉 Weber hat keine Bestellung
👉 Trotzdem wird er angezeigt (wegen LEFT JOIN)
👉 Produkt = NULL
🔹 Merksatz 🧠 #
👉 LEFT JOIN = „Zeig alles links, ergänze rechts wenn möglich“
🔹 Unterschied zu INNER JOIN #
| JOIN-Typ | Ergebnis |
|---|---|
| INNER JOIN | nur Treffer |
| LEFT JOIN | alles links + Treffer |
🔹 Extra: Mit Bedingung #
Nur Produkte anzeigen, die mit „L“ beginnen:
SELECT Kunden.Name, Bestellungen.Produkt
FROM Kunden
LEFT JOIN Bestellungen
ON Kunden.KundenID = Bestellungen.KundenID
WHERE Bestellungen.Produkt LIKE 'L%';
⚠️ Achtung: Das entfernt wieder Kunden ohne Treffer!
