it-praxisportal/courses/sql/06_inner_und_outer_joins
Alex Mueller 2571cb8847 feat(ux): responsive kurs-sidebar und kapitel-drawer für alle 13 kurse & web-ide
- Dynamic Sidebar mit window.COURSES_MANIFEST für 13 Kurse (216 Kapitel)
- Kurswechsler Dropdown mit Direktnavigation
- Fortschrittsanzeige mit Solved-Checkmarks (✓) aus localStorage
- Responsive Off-Canvas Drawer mit Floating Action Button (☰ Kapitel) & Backdrop auf Mobile/Tablets
- Web-IDE Topbar Drawer-Button (☰ Kapitel) für unterbrechungsfreien Vollbild-Editor
- Saubere Bereinigung redundanter statischer Legacy-Sidebars
2026-09-12 13:49:46 +02:00
..
aufgabe.sql Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
index.html feat(ux): responsive kurs-sidebar und kapitel-drawer für alle 13 kurse & web-ide 2026-09-12 13:49:46 +02:00
musterloesung.sql Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
README.md Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
test_aufgabe.sql Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00

SQL 06: Relationale Joins (INNER, LEFT & Multi-Table) 🔀

Willkommen zu Modul 06 des SQL & Datenbanken Kurses!

In relationalen Datenbanken sind Daten über mehrere spezialisierte Tabellen verteilt. Mit JOINs führst du diese Daten zur Abfragezeit wieder zusammen.


💡 1. Das Wichtigste in Kürze

Die wichtigsten Join-Typen

  1. INNER JOIN: Liefert nur Datensätze zurück, bei denen in beiden Tabellen eine Übereinstimmung vorliegt (Schnittmenge).
  2. LEFT JOIN (LEFT OUTER JOIN): Liefert alle Zeilen der linken Tabelle, ergänzt um die passenden Daten der rechten Tabelle. Gibt es rechts keinen Treffer, werden die Spalten mit NULL aufgefüllt.
  3. Anti-Join: Ein LEFT JOIN kombiniert mit WHERE rechte_tabelle.id IS NULL, um Datensätze zu finden, die keine Zuordnung haben.

Syntax mit Tabellen-Aliasen

-- 1. INNER JOIN (Nur Mitarbeiter mit zugewiesener Abteilung)
SELECT m.name, m.rolle, a.name AS abteilungs_name
FROM mitarbeiter m
INNER JOIN abteilungen a ON m.abteilung_id = a.id;

-- 2. LEFT JOIN (Alle Mitarbeiter, auch jene ohne Abteilung wie externe Berater)
SELECT m.name, m.rolle, a.name AS abteilungs_name
FROM mitarbeiter m
LEFT JOIN abteilungen a ON m.abteilung_id = a.id;

-- 3. Anti-Join (Finde alle Abteilungen OHNE Mitarbeiter)
SELECT a.id, a.name
FROM abteilungen a
LEFT JOIN mitarbeiter m ON a.id = m.abteilung_id
WHERE m.id IS NULL;

-- 4. Multi-Table JOIN (3 Tabellen verknüpfen)
SELECT m.name AS mitarbeiter, a.name AS abteilung, s.stadt, s.land
FROM mitarbeiter m
INNER JOIN abteilungen a ON m.abteilung_id = a.id
INNER JOIN standorte s ON a.standort_id = s.id;

🎯 Aufgaben in aufgabe.sql

  1. TODO 1: Tabellen standorte, abteilungen und mitarbeiter mit Testdaten anlegen.
  2. TODO 2: INNER JOIN: Mitarbeiter mit Abteilungsnamen abfragen.
  3. TODO 3: LEFT JOIN: Alle Mitarbeiter (inklusive externe Berater ohne Abteilung) abfragen.
  4. TODO 4: Anti-Join: Alle Abteilungen finden, denen noch kein Mitarbeiter zugewiesen ist.
  5. TODO 5: Multi-Table JOIN: Verbinde mitarbeiter, abteilungen und standorte.

🚀 Ausführung

Klicke in der Web-IDE auf Code ausführen oder Tests ausführen, um deine Join-Abfragen auszuführen.