# 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**

```sql
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**

```sql
SELECT spalte
FROM tabelle1
INNER JOIN tabelle2
ON tabelle1.schluessel = tabelle2.fremdschluessel;
```

---

**Beispiel**

```sql
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**

```sql
SELECT spalte
FROM tabelle1
LEFT JOIN tabelle2
ON tabelle1.schluessel = tabelle2.fremdschluessel;
```

---

**Beispiel**

```sql
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**

```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