Alles über SQL-Joins verstehen

jointure sql
Wenn Du unser Blog verfolgst, hast Du bereits von SQL oder „Structured Query Language“ gehört, einer Programmiersprache zur Verwaltung von Datenbanken. Daher weißt Du, wie wichtig SQL-Joins sind. Wenn Du den Artikel über die Grundlagen dieser Sprache verpasst hast, findest Du ihn hier. 
Auf den ersten Blick können Joins kompliziert oder schwer anwendbar erscheinen. DataScientest bietet Dir eine kurze Zusammenfassung der wichtigsten SQL-Joins mit einem einfachen Beispiel, um Dir das Leben zu erleichtern!  Zuallererst: Was ist denn ein Join?      Mithilfe von Joins (deutsch: Verbund) kannst Du Daten aus einer Datenbank mit verbundenen Tabellen abrufen.
Damit kann man die Tabellen in einer Datenbank nutzen, sie verknüpfen und effiziente Ergebnisse erzielen.
Es gibt verschiedene Arten von Joins; hier werden wir uns mit den wichtigsten befassen.    Im Laufe dieses Artikels werden wir zwei Tabellen nutzen: -Die Tabelle Stadt (franz.: ville) eigt die Städte, in denen der Kunde (franz.: client) lebt, der id_client entspricht, -Die Tabelle emailzeigt die E-Mail der Kunden.
Stadt

E-mail

1. INNER JOIN

Der interne Verbund oder INNER JOIN gibt Daten zurück, die bestimmte Verbundbedingungen erfüllen.

Wie das Schema zeigt, werden bei dieser Art von Verknüpfung die Tupel der beiden Tabellen paarweise verknüpft, wenn eine Verbundbedingung erfüllt ist. Diese Bedingung kann von beliebigem Typ sein, solange sie einen Boolean data type zurückgibt. Typischerweise wird diese Bedingung die Gleichheit eines gemeinsamen Attributs sein. Es muss angegeben werden, welche Attribute für den Join verwendet werden sollen. Nachdem man die Tabellen im INNER JOIN gefüllt hat, gibt man das Schlüsselwort ON und dann die gewünschte Gleichheit ein.

jointure sql
Schnittpunkt zweier Mengen
Dies ist die Abfrage, bei der die meisten Informationen verloren gehen, da sie nur die Zeilen in beiden Tabellen auswählt, in denen Informationen in beiden Tabellen vorhanden sind.

Mit einem INNER JOIN zwischen den beiden Tabellen erhältst Du nur die id_client, die in der Tabelle „email“ und in der Tabelle „ville“ (Stadt) vorhanden sind. Die id_client 4 und 5, die in der Tabelle „email“ und nicht in der Tabelle „ville“ (Stadt) vorhanden sind, werden nicht berücksichtigt. Dasselbe gilt für die id_client 7 und 8, die sich in der Tabelle „ville“ (Stadt) und nicht in der Tabelle „email“ befinden.

 

 

2. LEFT JOIN

Der LEFT JOIN ist ein Join zwischen 2 Tabellen, bei dem alle Datensätze aus der linken Tabelle zurückgegeben werden, auch wenn es keine Übereinstimmung mit der rechten Tabelle gibt. Wenn es keine Übereinstimmung gibt, werden die fehlenden Werte durch NULL aufgefüllt. Wie beim INNER JOIN musst Du die Attribute angeben, die für den Join verwendet werden sollen: Nachdem Du die Tabellen mit dem LEFT JOIN ausgefüllt hast, gibst Du das Schlüsselwort ON, dann die gewünschte Gleichheit ein. 

jointure gauche sql
Left Join

Hier machen wir eine LEFT JOIN-Abfrage in Bezug auf die Tabelle „email“, also zeigen wir alle Zeilen an, in denen die id_client in der linken Tabelle, also in der Tabelle „email“, vorhanden ist.  

 Die Zeilen, die der id_client 7 und 8 entsprechen, sind also nicht in der Abfrage enthalten.

3. RIGHT JOIN

Der RIGHT JOIN ist ein Join zwischen 2 Tabellen, bei dem alle Datensätze aus der rechten Tabelle zurückgegeben werden, auch wenn es keine Übereinstimmung mit der linken Tabelle gibt. Wenn es keine Übereinstimmung gibt, werden die fehlenden Werte durch NULL aufgefüllt.

Wie beim INNER JOIN, oder LEFT JOIN ist es notwendig, die Attribute anzugeben, die für den Join verwendet werden sollen: Nachdem Du die Tabellen mit dem RIGHT JOIN ausgefüllt hast, gibst Du das Schlüsselwort ON, dann die gewünschte Gleichheit ein.

jointure droite sql
Right Join

Hier machen wir ein RIGHT JOIN in Bezug auf die Tabelle „ville“ (Stadt), also erhalten wir als Ergebnis alle Zeilen der Tabelle „ville“ (Stadt) mit den entsprechenden Zeilen der Tabelle „e-mail”, wenn es eine Übereinstimmung gibt, weshalb die Zeilen, die der id_client 4 und 5 entsprechen, nicht vorhanden sind.

4. FULL JOIN

Beim FULL JOIN werden alle Datensätze aus zwei Tabellen zurückgegeben, auch wenn es keine Übereinstimmung mit der anderen Tabelle gibt. Wenn es keine Übereinstimmung gibt, werden die fehlenden Werte durch NULL aufgefüllt. Auch dieser Join erfordert das Attribut ON.
Vereinigungsmenge
Hier spielt es keine Rolle, ob es in einer der beiden Tabellen keine übereinstimmenden Zeilen gibt, denn alle Informationen aus beiden Tabellen sind vorhanden. Dies ist der Join, bei dem möglichst viele Informationen erhalten bleiben.

5. NATURAL JOIN

Beim NATURAL JOIN werden die Datensätze von zwei Tabellen geknüpft, indem die Datensätze aus beiden Tabellen auf „natürliche“ Weise zurückgegeben werden. Es muss in beiden Tabellen mindestens eine Spalte mit demselben Namen vorhanden sein. Sie ermöglicht einen natürlichen Join, indem sie die Zeilen mit Paaren zurückgibt, die in beiden Tabellen übereinstimmen. 

Beim NATURAL JOIN gibt man das ON nicht an.

Da siehst Du, dass es tatsächlich einen Join zwischen den beiden Tabellen mit „id_client“ gibt, da dies die einzige Variable ist, die in beiden Tabellen vorkommt.

Aber was ist denn der Unterschied zwischen dem NATURAL JOIN und dem INNER JOIN?

 Beim INNER JOIN wird die Wiederholung gleicher Zeilen vermieden, was beim NATURAL JOIN nicht möglich ist. Der INNER JOIN ergibt eine Tabelle auf der Grundlage der im ON angegebenen Daten, während der NATURAL JOIN eine Tabelle auf der Grundlage einer Spalte mit demselben Namen und Typ in beiden Tabellen ergibt.

  Die vier zu beachtenden Arten von Joins sind :  

-INNER JOIN, mit dem Informationen zwischen zwei Tabellen abgerufen werden können, wenn die Verbundbedingung im ON in beiden Tabellen erfüllt ist,

-LEFT / RIGHT JOIN, mit dem Informationen zwischen zwei Tabellen abgerufen werden können, wobei alle Informationen aus einer der beiden Tabellen erhalten bleiben,

-FULL JOIN ruft alle Informationen aus beiden Tabellen ohne Informationsverlust ab (kann aber viele NULLs anzeigen),

-NATURAL JOIN ist ein natürlicher Verbund zwischen den beiden Tabellen. Dabei muss man das ON nicht angeben.

 Mithilfe von Joins kannst Du mehrere Tabellen auf effiziente Weise miteinander verknüpfen. Es gibt verschiedene Arten und wir haben die wichtigsten kennengelernt.

Wenn Du mehr über SQL-Abfragen erfahren möchtest, gibt es in unsererWeiterbildung zum/r Data Analystein Modul darüber.

Weiterlesen

Möchtest Du informiert bleiben?

Schreib uns Deine E-Mail-Adresse, damit wir Dir die neuesten Artikel zum Zeitpunkt der Veröffentlichung zusenden können!