Was ist der Unterschied zwischen INNER JOIN, LEFT JOIN, RIGHT JOIN und FULL JOIN?

INNER JOIN

Definition:
Der INNER JOIN gibt die Schnittmenge von zwei Tabellen zurück. Das bedeutet, dass nur Zeilen zurückgegeben werden, bei denen es in beiden Tabellen Übereinstimmungen gibt.

Beispiel:
Angenommen, wir haben zwei Tabellen – Mitarbeiter (mit den Spalten ID und Name) und Abteilung (mit den Spalten Mitarbeiter_ID und Abteilungsname). Ein INNER JOIN auf die ID der Mitarbeiter-Tabelle und die Mitarbeiter_ID der Abteilung-Tabelle gibt alle Mitarbeiter zurück, die einer Abteilung zugeordnet sind, aber keine Mitarbeiter, die keiner Abteilung zugeordnet sind.

LEFT JOIN (auch bekannt als LEFT OUTER JOIN)

Definition:
Der LEFT JOIN gibt alle Zeilen der linken Tabelle und die entsprechenden Zeilen der rechten Tabelle zurück. Wenn es keine Übereinstimmung gibt, werden NULL-Werte für alle Spalten der rechten Tabelle zurückgegeben.

Beispiel:
Unter Verwendung der oben genannten Tabellen gibt ein LEFT JOIN von Mitarbeiter zu Abteilung alle Mitarbeiter zurück, unabhängig davon, ob sie einer Abteilung zugeordnet sind oder nicht.

RIGHT JOIN (auch bekannt als RIGHT OUTER JOIN)

Definition:
Der RIGHT JOIN ist das Gegenteil des LEFT JOIN. Er gibt alle Zeilen der rechten Tabelle und die entsprechenden Zeilen der linken Tabelle zurück. Wenn es keine Übereinstimmung gibt, werden NULL-Werte für alle Spalten der linken Tabelle zurückgegeben.

Beispiel:
Ein RIGHT JOIN von Mitarbeiter zu Abteilung gibt alle Abteilungen und die Mitarbeiter, die ihnen zugeordnet sind, zurück. Wenn ein Mitarbeiter keiner Abteilung zugeordnet ist, wird er nicht aufgeführt.

FULL JOIN (auch bekannt als FULL OUTER JOIN)

Definition:
Der FULL JOIN gibt alle Zeilen zurück, wenn in einer der Tabellen eine Übereinstimmung vorhanden ist. Wenn es keine Übereinstimmung gibt, werden NULL-Werte für jede Spalte der Tabelle zurückgegeben, in der es keine Übereinstimmung gibt.

Beispiel:
Ein FULL JOIN zwischen Mitarbeiter und Abteilung gibt alle Mitarbeiter und alle Abteilungen zurück. Wenn ein Mitarbeiter keiner Abteilung zugeordnet ist oder eine Abteilung keinen Mitarbeiter hat, werden NULL-Werte für die entsprechenden Spalten zurückgegeben.

Zusammenfassung:
Jeder JOIN-Typ hat eine spezifische Funktion, um die Beziehung zwischen zwei Tabellen in einer Datenbank abzubilden. Welcher JOIN verwendet wird, hängt von der spezifischen Anforderung der Abfrage ab.