it-praxisportal/courses/sql/06_inner_und_outer_joins
2026-09-12 13:26:06 +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 Branding-Update für it-praxisportal.de: Neuer Hero-Bereich, SVG-Favicon, OpenGraph-Metadaten und Plattform-Titel 2026-09-12 13:26:06 +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.