Innerer Join gegen äußere Join
Innerer Join und Outer Join sind zwei der SQL -Verbindungsmethoden, die in der Abfrageverarbeitung für Datenbanken verwendet werden. Sie gehören zur Familie der gemeinsamen Klauseln (andere zwei sind links und rechts verbunden). Es gibt jedoch eine Selbstverbindung, die für spezielle Situationen verwendet werden kann. Der Zweck des Verbindungen besteht darin, Felder mit den gemeinsamen Werten mit den beiden Tabellen zu kombinieren. Diese Verbindungen kombinieren Datensätze aus mehreren Tabellen in einer Datenbank. Es schafft resultierende Sets, die als eine andere Tabelle gespeichert werden können.
Was ist innere Verbindung?
Am häufigsten verwendeten SQL -Join -Operationen ist der innere Join. Es kann als Standardtyp von Join in Anwendungen angesehen werden. Innere Join Verwenden Sie das Join-Predicate, um zwei Tabellen zu kombinieren. Angenommen, die beiden Tabellen sind A und B, dann vergleichen das Join-Predicate die Reihen von A und B, um alle Paare herauszufinden, die das Prädikat erfüllen. Spaltenwerte aller zufriedenen Zeilen von A- und B -Tabellen werden kombiniert, um das Ergebnis zu erstellen. Es kann als zuerst das Kreuz-Join (kartesischer Produkt) aller Aufzeichnungen angesehen werden und dann nur die Aufzeichnungen zurückgeben, die das Join-Predicate erfüllen. In Wirklichkeit wird das kartesische Produkt jedoch nicht berechnet, da es sehr ineffizient ist. Hash Join oder Sort-Merge-Join wird stattdessen verwendet.
Was ist der äußere Join??
Im Gegensatz zu Inner Join hält Outer Join alle Datensätze, auch wenn es keinen passenden Rekord finden kann. Das bedeutet. Stattdessen werden alle Datensätze zurückgegeben, aber unvergleichliche Datensätze haben Nullwerte. Außenverbindungen sind in drei Subkategorien unterteilt. Sie sind links äußerlich Join, rechter äußerer Join und Voller Außenanwinne. Diese Differenzierung basiert darauf, welche Tabelle (linke Tabelle, rechte Tabelle oder beide Tabellen) beibehalten wird, wenn nicht übereinstimmende Datensätze gefunden werden. Die linken Außenverbindungen (auch als einfach gelinktes Join bekannt) behält alle Aufzeichnungen der linken Tabelle bei. Das heißt, selbst wenn die Zahlenübereinstimmungsdatensätze Null sind, enthält sie immer noch Datensätze in der Ergebnistabelle, hat jedoch Nullwerte für alle Spalten von B. Mit anderen Worten, alle Werte aus der linken Tabelle werden mit übereinstimmenden Werten aus der rechten Tabelle zurückgegeben (oder Nullwerte, wenn sie nicht übereinstimmt). Wenn Werte aus mehreren Zeilen aus der linken Tabelle mit einer einzelnen Zeile aus der rechten Tabelle übereinstimmen, wird die Zeile aus der rechten Tabelle nach Bedarf wiederholt. Der rechte äußere Join ist dem linken äußeren 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 Nullwerte für unerreichte rechte Werte) enthält. Voller äußerer Join ist umfassender als sowohl linke als auch rechte Außenverbindungen. Dies führt dazu.
Was ist der Unterschied zwischen innerem Join und dem äußeren Join?
Inner -Join hält die nicht übereinstimmenden Zeilen im Ergebnis nicht, aber der äußere Join hält alle Datensätze von mindestens einer Tabelle aus (je nachdem, welche äußere Join verwendet wurde). Das Verhalten, keine Informationen über unvergleichliche Zeilen in der Ergebnistabelle vorhanden zu haben, ist also unerwünscht. Sie müssen immer eine der äußeren Verknüpfungen verwenden (anstelle des inneren Zusammenhangs). Innerer Join kann kein Ergebnis erzielen, wenn keine Übereinstimmungen gefunden werden. Aber der äußere Join erzeugt immer eine resultierende Tabelle, auch ohne passende Zeilen. Der innere Join gibt Tabellen immer mit Werten zurück (falls zurückgegeben). Außenverbindungen können jedoch zu Tabellen mit Nullwerten führen.