INNER JOIN vs. OUTER JOIN

Definitionen:

  • INNER JOIN: Ein INNER JOIN kombiniert Zeilen aus zwei Tabellen basierend auf einer gegebenen Bedingung und gibt nur jene Zeilen zurück, die diese Bedingung erfüllen. Das bedeutet, es werden nur die übereinstimmenden Zeilen aus beiden Tabellen angezeigt.
  • OUTER JOIN: Ein OUTER JOIN gibt alle Zeilen aus einer Tabelle und die passenden Zeilen aus einer anderen Tabelle zurück. Wenn es keine Übereinstimmung gibt, werden NULL-Werte für jede Spalte der Tabelle zurückgegeben, die keine Übereinstimmungen hat. OUTER JOINs können als LEFT OUTER JOIN, RIGHT OUTER JOIN oder FULL OUTER JOIN kategorisiert werden.

Beispiel:

Angenommen, wir haben zwei Tabellen:

Tabelle A:

IDName
1Anna
2Brian
3Charlie

Tabelle B:

IDBeruf
1Lehrer
3Ingenieur
4Arzt
  • Ein INNER JOIN zwischen Tabelle A und Tabelle B anhand der Spalte “ID” würde zurückgeben:
IDNameBeruf
1AnnaLehrer
3CharlieIngenieur

Die Zeilen für Brian (aus Tabelle A) und Arzt (aus Tabelle B) werden nicht angezeigt, da sie in der jeweils anderen Tabelle keine entsprechende ID haben.

https://www.traditionrolex.com/3
  • Ein LEFT OUTER JOIN zwischen Tabelle A und Tabelle B anhand der Spalte “ID” würde zurückgeben:
IDNameBeruf
1AnnaLehrer
2BrianNULL
3CharlieIngenieur

Hier werden alle Zeilen aus Tabelle A und die passenden Zeilen aus Tabelle B angezeigt. Für Brian gibt es keine passende Zeile in Tabelle B, daher zeigt es NULL für den Beruf an.

Fazit:

Der Hauptunterschied zwischen INNER JOIN und OUTER JOIN liegt in der Art, wie nicht übereinstimmende Zeilen behandelt werden. Während INNER JOIN nur die Zeilen zurückgibt, die eine Übereinstimmung in beiden Tabellen haben, gibt OUTER JOIN auch Zeilen zurück, die keine Übereinstimmung in der jeweils anderen Tabelle haben.