Heim  >  Artikel  >  Datenbank  >  Was ist der Unterschied zwischen Inner-Join und Outer-Join?

Was ist der Unterschied zwischen Inner-Join und Outer-Join?

青灯夜游
青灯夜游Original
2020-11-20 14:09:1918658Durchsuche

Unterschied: Bei der Abfrageoperation „Inner Join“ werden die Datenzeilen aufgelistet, die den Join-Bedingungen entsprechen. Der zurückgegebene Abfrageergebnissatz enthält nicht nur Zeilen, die die Join-Bedingungen erfüllen, sondern auch die linke Tabelle (linke äußere Verknüpfung) und die rechte Tabelle (Rechter äußerer Join) oder alle Datenzeilen in beiden Kantentabellen (vollständiger äußerer Join).

Was ist der Unterschied zwischen Inner-Join und Outer-Join?

Die Verbindung zwischen zwei Tabellen wird hergestellt, indem eine oder mehrere Spalten in einer Tabelle mit Spalten in einer anderen Tabelle verknüpft werden. Der zum Verbinden der beiden Tabellen verwendete Ausdruck bildet die Join-Bedingung. Wenn die Verbindung erfolgreich ist, werden die Daten in der zweiten Tabelle mit der ersten Tabelle verbunden und eine zusammengesetzte Ergebnismenge gebildet – ein Plan, der die Datenzeilen in den beiden Tabellen enthält. Um es einfach auszudrücken: Die beiden Tabellen haben eine Teilmenge, obwohl sie nur vorübergehend ist. Es gibt zwei grundlegende Arten von Verbindungen, innere und äußere Verbindungen. Der Hauptunterschied zwischen den beiden Typen besteht darin, dass der äußere Join Zeilen in der Ergebnismenge zurückgibt, auch wenn die Join-Bedingungen nicht erfüllt sind, während der innere Join keine Zeilen in der Ergebnismengenklasse zurückgibt.

Wenn der äußere Join die Join-Bedingungen nicht erfüllt, gibt er normalerweise eine Spalte in einer Tabelle zurück, in der zweiten Tabelle gibt es jedoch keinen Rückgabewert – er ist null listet und verknüpft die Datenzeilen, mit denen die Bedingung übereinstimmt, und verwendet Vergleichsoperatoren, um die Spaltenwerte der verbundenen Spalten zu vergleichen. Es gibt drei Arten von inneren Verknüpfungen:


 1. Äquivalente Verknüpfung: Verwenden Sie den Gleichheitszeichenoperator (=) in der Verknüpfungsbedingung, um die Spaltenwerte der verknüpften Spalten zu vergleichen. einschließlich wiederholter Spalten.

 2. Ungleiche Verknüpfung: Verwenden Sie andere Vergleichsoperatoren außer dem Gleichheitsoperator in der Verknüpfungsbedingung, um die Spaltenwerte der verbundenen Spalten zu vergleichen. Zu diesen Operatoren gehören >, >=, 74e2c0c7805d9cc79e3b151f74afc7fb, !9d8b8b8a3c3a9ede2c71e56e3e6f5a80.   3. Natürlicher Join: Verwenden Sie den Gleichheitsoperator (=) in der Join-Bedingung, um die Spaltenwerte der verbundenen Spalten zu vergleichen. Es wird jedoch eine Auswahlliste verwendet, um die im Abfrageergebnissatz enthaltenen Spalten anzugeben und doppelte Spalten zu löschen in der Join-Tabelle.

(2) Outer Join

 Outer Join, der zurückgegebene Abfrageergebnissatz enthält nicht nur Zeilen, die die Join-Bedingungen erfüllen, sondern auch die linke Tabelle (linker äußerer Join oder linker Join)), die rechte Tabelle (rechts). Outer-Join) oder Right-Join) oder alle Datenzeilen in zwei Edge-Tabellen (vollständiger Outer-Join).

 Linker Join (Linker Join) gibt alle Datensätze in der linken Tabelle zurück, die den Join-Feldern in der rechten Tabelle entsprechen.

 Rechter Join (Rechter Join) gibt alle Datensätze in der rechten Tabelle zurück, die den Join-Feldern in entsprechen die linke Tabelle Record; Beispiel 1:

SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b   
   ON a.username=b.username

Beispiel 2:

SELECT a.*,b.* 
   FROM city as a FULL OUTER JOIN user as b 
   ON a.username=b.username

Weitere Programmierkenntnisse finden Sie unter:

Programmieren lernen

! !

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Inner-Join und Outer-Join?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn