Kapitel 6 – SQL-Joins
6.1 JOIN-Grundlagen
Definition
Ein JOIN verbindet Datensätze aus mehreren Tabellen miteinander.
JOINs werden verwendet, wenn benötigte Daten auf mehrere Tabellen verteilt sind.
Grundprinzip
Tabellen werden meist über Primärschlüssel und Fremdschlüssel verbunden.
Beispiel
Tabelle Kunde
| Kundennr | Name |
|---|---|
| 1 | Müller |
| 2 | Schneider |
Tabelle Bestellung
| Bestellnr | Kundennr |
|---|---|
| 1001 | 1 |
| 1002 | 2 |
Die Spalte Kundennr verbindet beide Tabellen.
Grundaufbau
SELECT kunde.name, bestellung.bestellnr
FROM kunde
JOIN bestellung
ON kunde.kundennr = bestellung.kundennr;
Wichtige JOIN-Arten
| JOIN-Art | Bedeutung |
|---|---|
| INNER JOIN | nur passende Datensätze aus beiden Tabellen |
| LEFT JOIN | alle Datensätze der linken Tabelle |
| RIGHT JOIN | alle Datensätze der rechten Tabelle |
| FULL OUTER JOIN | alle Datensätze aus beiden Tabellen |
Merksatz
JOINs verbinden Tabellen über gemeinsame Schlüssel.
Prüfungshinweis
In IHK-Aufgaben werden JOINs häufig benötigt, wenn Informationen aus mehreren Tabellen abgefragt werden sollen.
Typische Fehler:
- JOIN-Bedingung vergessen.
- Primärschlüssel und Fremdschlüssel verwechseln.
- falsche Tabellen verbinden.
- INNER JOIN und LEFT JOIN verwechseln.
- Spaltennamen ohne Tabellennamen verwenden, obwohl sie mehrfach vorkommen.
Quellen
- IT-Handbuch für Fachinformatiker
6.2 INNER JOIN
Definition
Ein INNER JOIN verbindet Datensätze aus zwei Tabellen.
Es werden nur Datensätze ausgegeben, bei denen die Join-Bedingung in beiden Tabellen erfüllt ist.
Grundaufbau
SELECT spalte
FROM tabelle1
INNER JOIN tabelle2
ON tabelle1.schluessel = tabelle2.fremdschluessel;
Beispiel
SELECT kunde.name, bestellung.bestellnr
FROM kunde
INNER JOIN bestellung
ON kunde.kundennr = bestellung.kundennr;
Bedeutung
Es werden nur Kunden angezeigt, die eine passende Bestellung haben.
Kunden ohne Bestellung erscheinen nicht im Ergebnis.
Typischer Einsatz
Ein INNER JOIN wird verwendet, wenn nur zusammengehörige Datensätze ausgegeben werden sollen.
Beispiele:
- Kunden mit Bestellungen
- Artikel mit Kategorien
- Mitarbeiter mit Abteilungen
- Rechnungen mit Kunden
Merksatz
INNER JOIN zeigt nur passende Datensätze aus beiden Tabellen.
Prüfungshinweis
In IHK-Aufgaben ist der INNER JOIN die häufigste JOIN-Art.
Typische Fehler:
- Join-Bedingung vergessen.
- INNER JOIN mit LEFT JOIN verwechseln.
- Fremdschlüssel und Primärschlüssel falsch verbinden.
- erwarten, dass Datensätze ohne passende Beziehung angezeigt werden.
Quellen
- IT-Handbuch für Fachinformatiker
6.3 LEFT JOIN
Definition
Ein LEFT JOIN verbindet Datensätze aus zwei Tabellen.
Es werden alle Datensätze der linken Tabelle ausgegeben, auch wenn es keinen passenden Datensatz in der rechten Tabelle gibt.
Grundaufbau
SELECT spalte
FROM tabelle1
LEFT JOIN tabelle2
ON tabelle1.schluessel = tabelle2.fremdschluessel;
Beispiel
SELECT kunde.name, bestellung.bestellnr
FROM kunde
LEFT JOIN bestellung
ON kunde.kundennr = bestellung.kundennr;
Bedeutung
Es werden alle Kunden angezeigt.
Kunden ohne Bestellung erscheinen ebenfalls im Ergebnis.
Bei fehlender Bestellung steht in den Spalten der rechten Tabelle NULL.
Typischer Einsatz
Ein LEFT JOIN wird verwendet, wenn alle Datensätze der linken Tabelle erhalten bleiben sollen.
Beispiele:
- alle Kunden, auch ohne Bestellung
- alle Artikel, auch ohne Verkauf
- alle Mitarbeiter, auch ohne Abteilung
- alle Kategorien, auch ohne Artikel
Merksatz
LEFT JOIN zeigt alle Datensätze der linken Tabelle und passende Datensätze der rechten Tabelle.
Prüfungshinweis
In IHK-Aufgaben ist LEFT JOIN wichtig, wenn auch Datensätze ohne passende Beziehung angezeigt werden sollen.
Typische Fehler:
- LEFT JOIN mit INNER JOIN verwechseln.
- erwarten, dass nur passende Datensätze angezeigt werden.
- NULL-Werte bei fehlenden passenden Datensätzen nicht beachten.
- linke und rechte Tabelle vertauschen.
Quellen
- IT-Handbuch für Fachinformatiker
6.4 Mehrere Tabellen verbinden
Definition
Bei SQL-Abfragen können mehrere Tabellen mit mehreren JOINs verbunden werden.
Das wird benötigt, wenn die gesuchten Informationen auf mehr als zwei Tabellen verteilt sind.
Grundprinzip
Jede zusätzliche Tabelle wird mit einem weiteren JOIN verbunden.
Die Verbindung erfolgt meistens über Primärschlüssel und Fremdschlüssel.
Beispiel Tabellen
| Tabelle | Enthält |
|---|---|
| kunde | Kundendaten |
| bestellung | Bestellungen |
| bestellposition | Artikel einer Bestellung |
| artikel | Artikeldaten |
Beispiel SQL
SELECT kunde.name, bestellung.bestellnr, artikel.bezeichnung
FROM kunde
INNER JOIN bestellung
ON kunde.kundennr = bestellung.kundennr
INNER JOIN bestellposition
ON bestellung.bestellnr = bestellposition.bestellnr
INNER JOIN artikel
ON bestellposition.artikelnr = artikel.artikelnr;
Bedeutung
Die Abfrage verbindet:
- Kunde mit Bestellung
- Bestellung mit Bestellposition
- Bestellposition mit Artikel
Typischer Einsatz
Mehrere Tabellen werden verbunden bei:
- Kunden und Bestellungen
- Bestellungen und Artikeln
- Rechnungen und Positionen
- Mitarbeiter und Abteilungen
- Produkte und Kategorien
Merksatz
Mehrere Tabellen werden Schritt für Schritt über JOINs verbunden.
Prüfungshinweis
In IHK-Aufgaben müssen häufig mehrere Tabellen verbunden werden, wenn die benötigten Spalten nicht in einer einzigen Tabelle stehen.
Typische Fehler:
- eine notwendige Zwischentabelle vergessen
- falsche Schlüssel miteinander verbinden
- JOIN-Bedingung vergessen
- Primärschlüssel und Fremdschlüssel verwechseln
- Spaltennamen ohne Tabellennamen verwenden, obwohl sie mehrfach vorkommen
Quellen
- IT-Handbuch für Fachinformatiker