Modellierungsspezialisten DRITTE NORMALFORM! „Bei der Abfrage, können wir dann alles wieder zusammenfügen!“ Mit Joins kann man zwei oder mehrere Tabellen verknüpfen Unser Ziel: Das Erforschen von JOINs Select Name, Straße, Hausnnummer, PLZ, email, Klassenbezeichnung, Zweig FROM Schüler, Klassen Leider Nein! Jeder mit Jedem! SELECT * FROM Tabelle1, Tabelle2 SELECT Name, Straße, Hausnummer, PLZ, Email, Klassenbezeichnung, Zweig FROM Klassen, Schüler WHERE Schüler.ID = Klassen.Zweig SELECT * FROM Tabelle1, Tabelle2 WHERE Tab1.id = Tab2.id SELECT * FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.feld1 = Tabelle2.feld2 SELECT * FROM Bestellungen as bes INNER JOIN Kunden as kun ON bes.KundenId = kun.ID WHERE bes.Preis > 40; SELECT * FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.feld1 = Tabelle2.feld2 Tabelle1 Datensatz 1 Ausgabe Datensatz 1 Datensatz 1 Tabelle2 Datensatz 1 Datensatz 2 Datensatz 3 Datensatz 4 Datensatz 3 Datensatz 3 Datensatz 3 SELECT * FROM Tabelle1 LEFT JOIN Tabelle2 ON Tabelle1.feld1 = Tabelle2.feld2 Tabelle1 Datensatz 1 Datensatz 3 Datensatz 4 Ausgabe Datensatz 1 Datensatz 3 Tabelle2 Datensatz 1 Datensatz 1 Datensatz 2 Datensatz 2 Datensatz 3 Datensatz 3 SELECT * FROM Tabelle1 RIGHT JOIN Tabelle2 ON Tabelle1.feld1 = Tabelle2.feld2 Tabelle1 Datensatz 1 Ausgabe Datensatz 1 Datensatz 1 Tabelle2 Datensatz 1 Datensatz 2 Datensatz 3 Datensatz 3 Datensatz 4 Datensatz 4 Datensatz 3 Datensatz 3 SELECT * FROM Tabelle1 OUTER JOIN Tabelle2 ON Tabelle1.feld1 = Tabelle2.feld2 Tabelle1 Datensatz 1 Ausgabe Datensatz 1 Datensatz 3 Datensatz 3 Datensatz 4 Datensatz 4 Gibt es in ACCESS nicht! Tabelle2 Datensatz 1 Datensatz 1 Datensatz 2 Datensatz 2 Datensatz 3 Datensatz 3 JOINs lassen sich beliebig oft verschachteln Tabelle1 Wert A Tabelle2 Wert B Wert C Tabelle3 Wert D Wert E Tabelle 4 Wert F SELECT * FROM Tabelle1 INNER JOIN (Tabelle2 INNER JOIN (Tabelle3 INNER JOIN (Tabelle4 […] ON Tabelle4.WertF = Tabelle3.WertE) ON Tabelle3.WertD = Tabelle2.WertC) ON Tabelle1.WertA = Tabelle2.WertB Wert G Tabelle2 Wert C Tabelle1 Wert A Wert B Tabelle3 Wert D Zwei JOINs aus einer Tabelle sind schwierig. Entweder findet man einen Weg die Tabellen anders zu verknüpfen, oder man benutzt die Schreibweise mit WHERE.