Beispielszenario

Schüler besuchen Praktikumsbetriebe (1:n-Beziehung):

Tabelle Schueler

s_id name b_id#
1 Jonas 101
2 Aylin 102
3 Leon 103

 

Tabelle Betrieb

b_id name
101 IT Solutions
102 Autohaus Müller
103 Bäckerei Lenz

 

Was ist ein JOIN?

Ein JOIN verbindet Datensätze aus mehreren Tabellen, um Informationen zu kombinieren – z. B. Schüler mit ihren Praktikumsbetrieben.
Die Verbindung erfolgt über Primär- und Fremdschlüssel. Dabei gibt es verschiedene Varianten:

🔗 Variante 1: JOIN (empfohlen bei Beziehungen)

SELECT s.name, b.name AS betrieb
FROM Schueler s
JOIN Betrieb b ON s.b_id = b.b_id;

✅ Ergebnis: Zeigt alle Schüler mit dem Namen ihres Praktikumsbetriebs.

📝 Erklärung:
- Der JOIN verknüpft die Tabellen Schueler und Betrieb.
- Die Verbindung erfolgt über den Fremdschlüssel b_id.
- Nur Schüler mit gültigem Betriebsbezug werden angezeigt.

🔄 Variante 2: WHERE-Vergleich (klassisch, aber veraltet)

SELECT s.name, b.name AS betrieb
FROM Schueler s, Betrieb b
WHERE s.b_id = b.b_id;

📝 Erklärung:
- Ähnliche Funktion wie der JOIN.
- Technisch korrekt, aber weniger modern.
- Empfehlung: Stattdessen JOIN ... ON verwenden.

🔍 Variante 3: Subquery in SELECT

SELECT s.name,
(SELECT name FROM Betrieb WHERE b_id = s.b_id) AS betrieb
FROM Schueler s;

📝 Erklärung:
- Für jede Zeile wird der passende Betrieb über eine Unterabfrage ermittelt.
- Vorteil: keine zweite Tabelle im FROM.
- Nachteil: schlechtere Performance bei vielen Datensätzen.

➕ Variante 4: Subquery in WHERE-Klausel

SELECT name
FROM Schueler
WHERE b_id = (
SELECT b_id
FROM Betrieb
WHERE name = 'IT Solutions'
);

✅ Ergebnis: Zeigt alle Schüler, die im Betrieb „IT Solutions“ ihr Praktikum machen.

📝 Erklärung:
- Die innere Abfrage liefert die b_id von „IT Solutions“.
- Die äußere Abfrage zeigt alle Schüler mit dieser b_id.

🧠 JOIN vs. Subquery – Wann was?

Ziel Empfehlung
Daten aus mehreren Tabellen kombinieren JOIN
Einzelne Werte aus einer anderen Tabelle anzeigen Subquery (SELECT)
Klarheit und gute Performance JOIN
Schnelle Lösung für einfache Anforderungen Subquery
Selektion auf Grundlage eines Werts aus einer anderen Tabelle Subquery (WHERE)

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.