🏗️ SQL Lehrpfad 2: Joins & Design

SQL 06: INNER JOIN & OUTER JOINs

Lerne Tabellen über gemeinsame Schlüssel zu verbinden: INNER JOIN für Schnittmengen, LEFT JOIN für Vollständigkeit und Multi-Table JOINs.

💡 1. Das Konzept relationaler JOINs

Anstatt alle Daten in eine riesige, unübersichtliche Tabelle zu stopfen, trennen wir sie in spezialisierte Entitäten und verknüpfen sie bei Bedarf:

🔵 INNER JOIN (Schnittmenge)

Gibt nur Zeilen zurück, die in beiden Tabellen eine Übereinstimmung haben. Unzugeordnete Zeilen werden ignoriert.

🟢 LEFT JOIN (Alle links)

Behält alle Zeilen der linken Tabelle bei. Fehlt ein passender Partner in der rechten Tabelle, steht dort NULL.

🏷️ 2. Tabellen-Aliase & Join-Syntax

Mit kurzen Aliasen (z.B. m für mitarbeiter, a für abteilungen) bleibt dein SQL lesbar:

-- INNER JOIN mit Tabellen-Aliasen:
SELECT 
    m.name AS mitarbeiter_name, 
    m.rolle, 
    a.name AS abteilung_name
FROM mitarbeiter m
INNER JOIN abteilungen a ON m.abteilung_id = a.id;

-- LEFT JOIN mit Beibehaltung externer Berater:
SELECT 
    m.name AS mitarbeiter_name, 
    m.gehalt, 
    COALESCE(a.name, 'Keine Abteilung') AS abteilung
FROM mitarbeiter m
LEFT JOIN abteilungen a ON m.abteilung_id = a.id;
🔍 Didaktische Analogie: Namensschilder auf einer Konferenz

INNER JOIN: Nur Teilnehmer, die ein gültiges Firmen-Namensschild tragen, dürfen in den VIP-Raum.

LEFT JOIN: JEDER Besucher darf hinein. Wer kein Firmenschild hat, bekommt auf der Gästeliste ein leeres Feld (NULL)!

📑 3. Cheat-Sheet: Join-Muster

Join-Typ Syntax Typischer Anwendungsfall
INNER JOIN FROM t1 JOIN t2 ON t1.id = t2.f_id Bestellungen mit Kundennamen abrufen
LEFT JOIN FROM t1 LEFT JOIN t2 ON t1.id = t2.f_id Alle Kunden anzeigen (auch ohne Bestellungen)
Anti-Join LEFT JOIN t2 ... WHERE t2.id IS NULL Kunden finden, die noch nie bestellt haben
Multi-Join FROM t1 JOIN t2 ON ... JOIN t3 ON ... Mitarbeiter mit Abteilung und Standort verbinden

🧠 Diagnostischer Selbst-Check

Überprüfe dein Verständnis der Kernkonzepte und typischen Denkfallen, bevor du den Code in der Web-IDE schreibst.

🎯 Aufgaben & Checkliste in aufgabe.sql

💻 In Web-IDE öffnen → ← Zurück zu SQL 05 Weiter zu SQL 07 →