Unterschied zwischen Inner Join und Outer Join

Unterschied zwischen Inner Join und Outer Join
Unterschied zwischen Inner Join und Outer Join

Video: Unterschied zwischen Inner Join und Outer Join

Video: Unterschied zwischen Inner Join und Outer Join
Video: Informationspyramide - Der Unterschied zwischen Daten, Information und Wissen 2024, November
Anonim

Inner Join vs. Outer Join

Inner Join und Outer Join sind zwei der SQL-Join-Methoden, die bei der Abfrageverarbeitung für Datenbanken verwendet werden. Sie gehören zur Familie der Join-Klauseln (zwei weitere sind Left- und Right-Joins). Es gibt jedoch einen Self Join, der für spezielle Situationen verwendet werden kann. Der Zweck von Join besteht darin, Felder mit den gemeinsamen Werten der beiden Tabellen zu kombinieren. Diese Verknüpfungen kombinieren Datensätze aus mehreren Tabellen in einer Datenbank. Es erstellt Ergebnismengen, die als weitere Tabelle gespeichert werden können.

Was ist Inner Join?

Die am häufigsten verwendete SQL-Join-Operation ist der Inner Join. Es kann als der in Anwendungen verwendete Standard-Join-Typ angesehen werden. Inner Join Verwenden Sie das Join-Prädikat, um zwei Tabellen zu kombinieren. Angenommen, die beiden Tabellen sind A und B, dann vergleicht das Join-Prädikat die Zeilen von A und B, um alle Paare zu finden, die das Prädikat erfüllen. Sp altenwerte aller erfüllten Zeilen von A- und B-Tabellen werden kombiniert, um das Ergebnis zu erstellen. Es kann so betrachtet werden, als würde zuerst der Cross Join (kartesisches Produkt) aller Datensätze genommen und dann nur die Datensätze zurückgegeben, die das Join-Prädikat erfüllen. In Wirklichkeit wird das kartesische Produkt jedoch nicht berechnet, da es sehr ineffizient ist. Stattdessen wird Hash-Join oder Sort-Merge-Join verwendet.

Was ist Outer Join?

Im Gegensatz zu Inner Join behält Outer Join alle Datensätze bei, auch wenn kein passender Datensatz gefunden werden kann. Das bedeutet, dass Outer Join einen Datensatz benötigt, um einen passenden Datensatz zu finden, damit er im Ergebnis erscheint. Stattdessen werden alle Datensätze zurückgegeben, aber nicht übereinstimmende Datensätze haben Nullwerte. Outer Joins sind in drei Unterkategorien unterteilt. Sie sind Left Outer Join, Right Outer Join und Full Outer Join. Diese Unterscheidung basiert darauf, welche Zeile der Tabelle (linke Tabelle, rechte Tabelle oder beide Tabellen) beibeh alten wird, wenn nicht übereinstimmende Datensätze gefunden werden. Left Outer Joins (auch einfach Left Join genannt) beh alten alle Datensätze der linken Tabelle bei. Das heißt, selbst wenn die Anzahl übereinstimmender Datensätze Null ist, enthält die Ergebnistabelle immer noch Datensätze, aber für alle Sp alten von B Nullwerte. Mit anderen Worten, alle Werte aus der linken Tabelle werden mit übereinstimmenden Werten aus der rechten zurückgegeben Tabelle (oder Nullwerte, wenn sie nicht übereinstimmen). Wenn Werte aus mehreren Zeilen der linken Tabelle mit einer einzelnen Zeile der rechten Tabelle abgeglichen werden, wird die Zeile der rechten Tabelle nach Bedarf wiederholt. Right Outer Join ist dem Left Outer Join ziemlich ähnlich, aber die Behandlung von Tabellen wird verehrt. Das bedeutet, dass das Ergebnis alle Zeilen der rechten Tabelle mindestens einmal mit übereinstimmenden linken Tabellenwerten (und Nullwerten für nicht übereinstimmende rechte Werte) enth alten wird. Vollständige äußere Verknüpfungen sind umfassender als linke und rechte äußere Verknüpfungen. Dadurch wird der Effekt kombiniert, dass sowohl die linke als auch die rechte äußere Seite miteinander verbunden werden.

Was ist der Unterschied zwischen Inner Join und Outer Join?

Inner Join behält die nicht übereinstimmenden Zeilen nicht im Ergebnis, aber Outer Join behält alle Datensätze aus mindestens einer Tabelle (abhängig davon, welcher Outer Join verwendet wurde). Das Verh alten, dass keine Informationen zu nicht übereinstimmenden Zeilen in der Ergebnistabelle vorhanden sind, ist also unerwünscht. Sie müssen immer einen der äußeren Joins (anstelle des inneren Joins) verwenden. Inner Join führt möglicherweise zu keinem Ergebnis, wenn keine Übereinstimmungen gefunden werden. Aber Outer Join erzeugt immer eine resultierende Tabelle, auch ohne übereinstimmende Zeilen. Inner Join gibt immer Tabellen mit Werten zurück (falls zurückgegeben). Outer Joins können jedoch zu Tabellen mit Nullwerten führen.

Empfohlen: