| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • Stop wasting time looking for files and revisions. Connect your Gmail, DriveDropbox, and Slack accounts and in less than 2 minutes, Dokkio will automatically organize all your file attachments. Learn more and claim your free account.

View
 

SQL_JOIN

Page history last edited by GSGInformatik 3 years, 7 months ago

Join-Operator

Mit Hilfe des JOIN-Operators lassen sich Datenbanktabellen (Relationen) einfach miteinander verknüpfen.

 

Beispiel: Gegeben sind die folgenden Tabellen

 

Autor:

AutorID  Name 
Autor 1
Autor 2
Autor 3
Autor 4 

 

Buch:

BuchID Titel HerausgeberID A_ID
1 Buch 1  a
Buch 2  b
Buch 3  c
Buch 4  c

 

Man benötigt sinnvolle Verknüpfungspunkte, hier: AutorID und A_ID (Fremdschlüssel)

 

select-Verknüpfung:

SELECT *

FROM Autor a, Buch b

WHERE a.AutorID = b.A_ID;

 

join-Verknüpfung:

SELECT *

FROM Autor a JOIN Buch b

ON a.AutorID = b.A_ID;

 

Ergebnis:

AutorID  Name BuchID  Titel  HerausgeberID A_ID 
Autor 1  Buch 1  a
Autor 1  Buch 2  b
Autor 3  Buch 3  c
Autor 4  Buch 4  c

 

Der JOIN-Operator verknüpft die beiden Relationen miteinander, das "ON" legt den Verknüpfungspunkt bzw. die Bedingung (gleichzusetzen mit "WHERE") fest.

 

Grundstruktur:

SELECT Attribut(e) FROM <Relation 1> JOIN <Relation 2> ON <Bedingung(en)>;

 

 

Varianten (LEFT / RIGHT OUTER JOIN):

Neben dem normalen JOIN-Operator gibt es noch weitere Varianten, wie etwa den "OUTER"-JOIN. Von diesem gibt es zwei Arten: LEFT-JOIN und RIGHT-JOIN.

 

Der OUTER-JOIN-Operator wählt alle Ergebnisse auf der jeweiligen Seite des Join aus, auch wenn diesen keine weiteren Daten zugeordnet sind:

SELECT *

FROM Autor a LEFT JOIN Buch b 

ON a.AutorID = b.A_ID;

 

Ergebnis:

AutorID  Name BuchID  Titel  HerausgeberID A_ID 
Autor 1  Buch 1  a
Autor 1  Buch 2  b
2 Autor 2 NULL NULL NULL NULL
Autor 3  Buch 3  c
Autor 4  Buch 4  c

 

Wenn einer der Autoren mehrere Bücher geschrieben hat, wir er auch mehrmals angezeigt, aber mindestens einmal (auch wenn er kein Buch geschrieben hat).

 

Der RIGHT-JOIN funktioniert entsprechend. Dabei ist entscheidend, welche Tabelle im Befehl zuerst (links) und zuletzt (right) steht.

 

JOIN-Operator über mehrere Tabellen

select-Verknüpfung:

SELECT * 

FROM Autor a, Buch b, Herausgeber c

WHERE a.AutorID = b.A_ID AND b.HerausgeberID = c.HerausgeberID;

 

join-Verknüpfung:

SELECT *

FROM Autor a JOIN Buch b ON (a.AutorID = a.A_ID)

     JOIN Herausgeber c ON (b.HerausgeberID = c.HerausgeberID);

 

 

Comments (0)

You don't have permission to comment on this page.