Inner Join vs. Äußere Verbindung


In SQL a Beitreten wird verwendet, um bestimmte Datenzeilen aus zwei oder mehr Tabellen in einer Datenbank zu vergleichen und miteinander zu kombinieren. Ein innere Verbindung findet übereinstimmende Daten aus Tabellen und gibt sie zurück äußere Verbindung findet übereinstimmende Daten und gibt sie zurück und einige unähnliche Daten aus Tabellen.

Inner Join

Eine innere Verknüpfung konzentriert sich auf die Gemeinsamkeit zwischen zwei Tabellen. Bei Verwendung eines Inner-Joins müssen mindestens zwei übereinstimmende Daten zwischen zwei (oder mehr) Tabellen vorhanden sein, die verglichen werden. Ein innerer Join durchsucht Tabellen nach übereinstimmenden oder überlappenden Daten. Nach dem Finden fügt der innere Join die Informationen zusammen und gibt sie in einer neuen Tabelle zurück.

Beispiel für Inner Join

Betrachten wir ein gemeinsames Szenario aus zwei Tabellen: Produktpreise und Mengen. Die allgemeine Information in den beiden Tabellen ist der Produktname, also die logische Spalte, um die Tabellen zu verknüpfen auf. Es gibt einige Produkte, die in beiden Tabellen üblich sind. andere sind für eine der Tabellen eindeutig und haben keine Übereinstimmung in der anderen Tabelle.

Eine innere Verbindung auf Produkte gibt nur Informationen zu den Produkten zurück, die in beiden Tabellen üblich sind.

Äußeres Join

Ein Outer-Join gibt eine Menge von Datensätzen (oder Zeilen) zurück, die enthalten, was ein Inner-Join zurückgeben würde, aber auch andere Zeilen, für die in der anderen Tabelle keine entsprechende Übereinstimmung gefunden wird.

Es gibt drei Arten von äußeren Verbindungen:

  • Linker äußerer Join (oder Left Join)
  • Rechter äußerer Join (oder Right Join)
  • Vollständiger äußerer Join (oder vollständiger Join)

Jeder dieser äußeren Joins bezieht sich auf den Teil der Daten, der verglichen, kombiniert und zurückgegeben wird. Manchmal werden in diesem Prozess Nullen erzeugt, da einige Daten gemeinsam genutzt werden, andere jedoch nicht.

Linke äußere Verbindung

Ein Left-Outer-Join gibt alle Daten in Tabelle 1 und alle gemeinsam genutzten Daten (also den inneren Teil des Venn-Diagramms) zurück, jedoch nur entsprechende Daten aus Tabelle 2, bei denen es sich um den Right-Join handelt.

Linkes Join-Beispiel

In unserer Beispieldatenbank befinden sich zwei Produkte - Orangen und Tomaten - auf der linken Seite (Preise Tabelle), für die es keinen Eintrag auf der rechten Seite gibt (Tabelle "Mengen"). Bei einem Links-Join werden diese Zeilen mit einer NULL in der Spalte Menge in die Ergebnismenge aufgenommen. Die anderen Zeilen im Ergebnis sind die gleichen wie der innere Join.

Rechter äußerer Join

Ein rechter Outer-Join gibt die Daten von Table 2 und alle gemeinsam genutzten Daten zurück, jedoch nur die entsprechenden Daten aus Tabelle 1 (linker Join).

Right Join Beispiel

Ähnlich wie im Beispiel für den linken Join enthält die Ausgabe eines rechten äußeren Joins alle Zeilen des inneren Joins und zwei Zeilen - Broccoli und Squash - von 'rechts' (Mengen Tabelle), für die links keine passenden Einträge vorhanden sind.

Volle äußere Verbindung

Eine vollständige äußere Verknüpfung oder eine vollständige Verknüpfung, die ist nicht unterstützt durch das beliebte Datenbankmanagementsystem MySQL, kombiniert und kehrt zurück alles Daten aus zwei oder mehr Tabellen, unabhängig davon, ob Informationen gemeinsam genutzt werden. Stellen Sie sich einen vollständigen Join vor, indem Sie einfach alle angegebenen Informationen duplizieren, jedoch in einer Tabelle und nicht in mehreren Tabellen. Wenn übereinstimmende Daten fehlen, werden Nullen erzeugt.

Dies sind nur die Grundlagen, aber viele Dinge können mit Joins gemacht werden. Es gibt sogar Verknüpfungen, die andere Verknüpfungen ausschließen können!

Video, das innere und äußere Verbindungen erklärt

In diesem Video wird der Unterschied zwischen den verschiedenen Arten von Joins erläutert. Es wird erwartet, dass an dem Punkt begonnen wird, an dem die Diskussion über Joins beginnt.

Verweise

  • Unterschied zwischen innerer und äußerer Verbindung - Paketüberfluss
  • SQL Inner Join - Quackit
  • Äußere SQL-Verknüpfung - Quackit
  • Inner Joins verwenden - Microsoft SQL Server
  • Äußere Joins verwenden - Microsoft SQL Server
  • Visuelle Darstellung von SQL-Joins - CodeProject
  • Wikipedia: Join (SQL)