Inhaltsverzeichnis

JOIN über drei Tabellen

Syntax von JOIN

SELECT * | Attribut [, Attribut] FROM Tabellenname1
xx [xx];
 
xx :=
INNER | (LEFT|RIGHT [OUTER]) JOIN Tabellenname2
ON Tabellenname1.Attribut = Tabellenname2.Attribut

Selbstverständlich können auch drei und mehr Tabellen miteinander verbunden werden. Es wird aber relativ rasch ziemlich unübersichtlich und bei grossen Datenmengen arschlangsam💩.

Als Datenmodell schauen wir das folgende Beispiel an:

Die Tabelle "tblKunden" in der Mitte ist für uns quasi die Haupttabelle. Und hier wollen wir nun beispielsweise eine Liste wie die folgende erstellen:

Aufgabe 1

Versuchen Sie, mit Hilfe der Syntax-Angabe ganz oben ein solches SQL-Statement zu erstellen. Sie benötigen hierfür noch keine WHERE-Klausel. Filtern wollen wir noch nicht. Verwenden Sie einen INNER JOIN.

Lösung

Wenn Sie INNER JOIN verwendet haben, werden Sie wohl wieder zu wenig Datensätze angezeigt kriegen. Bei mir sind es 80.

Aufgabe 2

Testen Sie nun selbst aus, wie Sie das SQL-Statement anpassen müssen, damit sämtliche 91 Kund*innen erscheinen.

Lösung

Kriterien in zwei Tabellen

Aufgabe 3

Erstellen Sie eine Abfrage, welche nur diejenigen Kund*innen aus der Schweiz, Österereich und Deutschland auflistet, welche die Funktion "Abteilungsleiter" oder "Verkaufsleiter" haben.

Lösung