Modellierungsspezialisten
DRITTE NORMALFORM!
„Bei der Abfrage, können wir dann alles wieder zusammenfügen!“
Mit Joins kann man zwei oder mehrereTabellen 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, ZweigFROM Klassen, SchülerWHERE Schüler.ID = Klassen.Zweig
SELECT *FROM Tabelle1, Tabelle2WHERE Tab1.id = Tab2.id
SELECT *FROM Tabelle1 INNER JOIN Tabelle2 ONTabelle1.feld1 = Tabelle2.feld2
SELECT * FROM Bestellungen as besINNER JOIN Kunden as kunON bes.KundenId = kun.ID
WHERE bes.Preis > 40;
SELECT *FROM Tabelle1INNER JOIN Tabelle2 ONTabelle1.feld1 = Tabelle2.feld2
Tabelle1 Tabelle2Datensatz 1
Datensatz 3Datensatz 4
Datensatz 1Datensatz 2Datensatz 3
AusgabeDatensatz 1 Datensatz
1
Datensatz 3 Datensatz 3
SELECT *FROM Tabelle1LEFT JOIN Tabelle2ON Tabelle1.feld1 = Tabelle2.feld2
Tabelle1 Tabelle2Datensatz 1
Datensatz 3Datensatz 4
Datensatz 1Datensatz 2Datensatz 3
AusgabeDatensatz 1 Datensatz
1
Datensatz 3
Datensatz 4
Datensatz 3
SELECT *FROM Tabelle1RIGHT JOIN Tabelle2ON Tabelle1.feld1 = Tabelle2.feld2
Tabelle1 Tabelle2Datensatz 1
Datensatz 3Datensatz 4
Datensatz 1Datensatz 2Datensatz 3
AusgabeDatensatz 1
Datensatz 3
Datensatz 1
Datensatz 2
Datensatz 3
SELECT *FROM Tabelle1OUTER JOIN Tabelle2ON Tabelle1.feld1 = Tabelle2.feld2
Tabelle1 Tabelle2Datensatz 1
Datensatz 3Datensatz 4
Datensatz 1Datensatz 2Datensatz 3
AusgabeDatensatz 1
Datensatz 3
Datensatz 4
Datensatz 1
Datensatz 2
Datensatz 3
Gibt es in ACCESS nicht!
statt:SELECT *FROM Tabelle1OUTER JOIN Tabelle2ON Tabelle1.feld = Tabelle2.feld
Kann in manchen Datenbanksystemen auch geschrieben werden:SELECT *FROM Tabelle1OUTER JOIN Tabelle2USING (feld) Gibt es
in ACCESS nicht!
Tabelle 4Wert F Wert G
Tabelle3Wert D Wert E
Tabelle1 Tabelle2Wert A Wert B Wert C
JOINs lassen sich beliebig oft verschachteln
SELECT * FROM Tabelle1INNER JOIN (Tabelle2 INNER JOIN (Tabelle3 INNER JOIN (Tabelle4
[…]
ON Tabelle4.WertF = Tabelle3.WertE) ON Tabelle3.WertD = Tabelle2.WertC)ON Tabelle1.WertA = Tabelle2.WertB
Tabelle1Wert A Wert B
Tabelle2Wert C
Tabelle3Wert 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.
Top Related