Detaillierte Erklärung der Unterschiede zwischen SQL Joint Query Inner Join, Outer Join und Cross Join

Detaillierte Erklärung der Unterschiede zwischen SQL Joint Query Inner Join, Outer Join und Cross Join

Beim Entwickeln von Anwendungen, die eine Datenbank verwenden, müssen Sie zwangsläufig eine Union-Abfrage verwenden. Zu den üblichen Union-Abfragen in SQL gehören Inner Join, Outer Join und Cross Join. Vielen Leuten, auch mir, sind die Unterschiede zwischen diesen dreien vielleicht nicht ganz klar. Sehen wir sie uns einmal an. Wenn Sie Join verwenden, um Tabellen zu verbinden, ist der fehlerhafte Fall Inner Join. Darüber hinaus gehören Left Join und Right Join, die bei der Entwicklung verwendet werden, zu Outer Join, und Outer Join umfasst auch Full Join. Lassen Sie mich Ihnen anhand von Bildern den Unterschied zwischen ihnen erklären.

Es gibt zwei Tabellen, Tabelle A ist die Tabelle auf der linken Seite. Tabelle B ist die Tabelle auf der rechten Seite. Jeder von ihnen hat vier Datensätze, von denen zwei den gleichen Namen haben:

1. Das Ergebnis von INNER JOIN ist der Schnittpunkt von AB

SELECT * FROM TabelleA INNER JOIN TabelleB ON TabelleA.name = TabelleB.name 

2. LEFT[OUTER] JOIN erzeugt einen vollständigen Satz der Tabelle A, und wenn keine Übereinstimmung vorliegt, werden die übereinstimmenden Werte in Tabelle B durch Nullwerte ersetzt.

SELECT * FROM TabelleA LEFT OUTER JOIN TabelleB ON TabelleA.name = TabelleB.name 

3.RIGHT [OUTER] JOIN erzeugt den vollständigen Satz der Tabelle B, und die übereinstimmenden Werte in Tabelle A werden durch Nullwerte ersetzt, wenn keine Übereinstimmung vorliegt.

Wählen Sie * aus TabelleA RECHTS OUTER JOIN TabelleB auf TabelleA.name = TabelleB.name

Das Diagramm ähnelt dem Left Join.

4. FULL [OUTER] JOIN stellt die Vereinigung von A und B her. Für Datensätze, die nicht übereinstimmen, wird Null als Wert verwendet.

SELECT * FROM TabelleA FULL OUTER JOIN TabelleB ON TabelleA.name = TabelleB.name

Dass kein passender Wert vorliegt, können Sie mit is NULL feststellen:

SELECT * FROM TabelleA FULL OUTER JOIN TabelleB ON TabelleA.name = TabelleB.name
WO TableA.id null IST ODER TableB.id null IST 

5. CROSS JOIN führt eine N*M-Kombination der Daten in Tabelle A und Tabelle B durch, d. h. das kartesische Produkt. Dieses Beispiel generiert beispielsweise 4*4=16 Datensätze. Während des Entwicklungsprozesses müssen wir die Daten filtern, daher wird diese Methode selten verwendet.

SELECT * FROM TabelleA CROSS JOIN TabelleB

Durch den obigen Vergleich glaube ich, dass jeder ein klares Verständnis des Unterschieds zwischen Inner Join, Outer Join und Cross Join hat.

Auffüllen

Warum ist Mitmachen die beste Wahl? Denn wenn zum Verbinden der Tabellen „“, „“ verwendet wird, generieren die Tabellen A und B direkt das kartesische Produkt und verwenden dann „where“, um die Ergebnisse zu filtern. Beim Zusammenführen werden jedoch die Tabellen A und B verbunden. Die Ergebnisse werden zunächst nach den Bedingungen nach „on“ und dann nach den Bedingungen nach „where“ gefiltert.

Laut SQL-Standard ist CROSS JOIN ein kartesisches Produkt. Aber für MySQL ist CROSS JOIN gleichbedeutend mit INNER JOIN.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Eine kurze Einführung in die Verwendung des Dezimaltyps in MySQL
  • Mysql-Methode zum Kopieren einer Datenspalte einer Tabelle in eine Spalte einer anderen Tabelle
  • So verbessern Sie die MySQL Limit-Abfrageleistung
  • Konfiguration der MySQL-Master/Slave-Datenbanksynchronisierung und häufige Fehler
  • Verwendung und Analyse des Mysql Explain-Befehls
  • SQL-Anweisungen in MySQL verwenden keine Indizes
  • So erstellen Sie MySQL-Indizes richtig
  • Erklärung zur Verwendung von „Ersetzen“ und „Ersetzen in“ in MySQL
  • So optimieren Sie die MySQL-Leistung durch langsame MySQL-Abfragen
  • Problem mit der Groß-/Kleinschreibung in der MySQL-Datenbank

<<:  So installieren Sie den MySQL 5.7.28-Binärmodus unter CentOS 7.4

>>:  Praktische Methode zum Upgrade von PHP auf 5.6 unter Linux

Artikel empfehlen

So installieren Sie die Linux-Onlinesoftware gcc online

Befehle zur Linux-Onlineinstallation: yum install...

MySQL-Tabellenübergreifende Abfrage und Tabellenübergreifende Aktualisierung

Freunde, die über Grundkenntnisse in SQL verfügen...

So installieren Sie MySQL über Yum auf CentOS7

1. Überprüfen Sie, ob MySQL installiert ist Yum-L...

Vue ruft die Computerkamera auf, um die Fotofunktion zu realisieren

In diesem Artikelbeispiel wird der spezifische Co...

Verwenden Sie Element+vue, um Start- und Endzeitlimits zu implementieren

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erklärung des Unterschieds zwischen Flex und Inline-Flex in CSS

inline-flex ist dasselbe wie inline-block. Es ist...

HTML-Hyperlink ein Tag_Powernode Java Academy

Jeder, der HTML studiert oder verwendet hat, soll...

CSS-Syntax für Tabellenränder

<br /> CSS-Syntax für Tabellenränder Zu den ...

So installieren Sie eine MySQL-Datenbank unter Ubuntu

Ubuntu ist ein kostenloses und quelloffenes Deskt...