Beispielszenario

Schülerinnen und Schüler besuchen Praktikumsbetriebe
1:n-Beziehung
(Jeder SuS besucht einen Betrieb. Ein Betrieb kann von mehreren SuS besucht werden.)

Ausgangstabellen:

 

Schüler

id name betrieb_id#
1 Ali 1
2 Lea 1
3 Tim 2
4 Jonas NULL

 

Betrieb

id name
1 Auto AG
2 IT GmbH
3 Bau GmbH

 


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.

Je nach gewünschtem Ergebnis gibt es verschiedene JOIN-Arten:

INNER JOIN

SELECT *
FROM schueler
INNER JOIN betrieb ON schueler.betrieb_id = betrieb.id;

Das Ergebnis enthält nur Schüler mit zugeordnetem Betrieb.
Schüler ohne Betrieb (z. B. Jonas) werden nicht angezeigt.
„INNER“ bedeutet: Schnittmenge – nur Datensätze, die innen, also in beiden Tabellen vorkommen.
 

Ergebnistabelle

id name betrieb_id id name
1 Ali 1 1 Auto AG
2 Lea 1 1 Auto AG
3 Tim 2 2 IT GmbH

 

LEFT JOIN

SELECT *
FROM schueler
LEFT JOIN betrieb ON schueler.betrieb_id = betrieb.id;

Das Ergebnis enthält alle Schüler – auch ohne zugeordneten Betrieb.
Der Betrieb ist dann NULL.
„LEFT“ meint: Alles aus der linken Tabelle (schueler), passende aus der rechten (betrieb)

 

Ergebnistabelle

id name betrieb_id id name
1 Ali 1 1 Auto AG
2 Lea 1 1 Auto AG
3 Tim 2 2 IT GmbH
4 Jonas - - -

 

RIGHT JOIN

SELECT *
FROM schueler
RIGHT JOIN betrieb ON schueler.betrieb_id = betrieb.id;

Das Ergebnis enthält alle Betriebe – auch ohne zugeordnete Schüler.
Schüler ist dann NULL.
„RIGHT“ meint: Alles aus der rechten Tabelle (betrieb), passende aus der linken (schueler)

 

Ergebnistabelle

id name betrieb_id id name
1 Ali 1 1 Auto AG
2 Lea 1 1 Auto AG
3 Tim 2 2 IT GmbH
- - - 3 Bau GmbH

 

Zusammenfassung:

JOIN-Typ Welche Zeilen werden angezeigt?
INNER JOIN Nur Zeilen mit Übereinstimmung in beiden Tabellen
LEFT JOIN Alle Zeilen aus linker Tabelle, passende Daten aus rechter Tabelle
RIGHT JOIN Alle Zeilen aus rechter Tabelle, passende Daten aus linker Tabelle

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.