SQL Join

Werbung
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.
Herunterladen