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 erweitern Sie Vue Router-Links in Vue 3

Vorwort Das Tag <router-link> ist ein großa...

Miniprogramm zur Implementierung der Rechnerfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Implementierung der MySQL-Datensortierung (aufsteigend und absteigend)

Datensortierung aufsteigend, absteigend 1. Sortie...

MySQL-Benutzer und -Berechtigungen und Beispiele zum Knacken des Root-Passworts

MySQL-Benutzer und -Berechtigungen In MySQL gibt ...

So deinstallieren Sie das native OpenJDK von Linux und installieren Sun JDK

Siehe: https://www.jb51.net/article/112612.htm Üb...

Details zur JS-Array-Deduplizierung

Inhaltsverzeichnis 1 Testfälle 2 JS-Array-Dedupli...

Javascript um den Drag-Effekt der Login-Box zu erreichen

In diesem Artikel wird der spezifische Code von J...

Verwendung und Verständnis von MySQL-Triggern

Inhaltsverzeichnis 1. Was ist ein Auslöser? 2. Er...

Einfaches Webdesign-Konzept – Farbabstimmung

(I) Grundkonzepte der Farbabstimmung auf Webseiten...

Stellen Sie einen Varnish-Cache-Proxyserver basierend auf Centos7 bereit

1. Lackübersicht 1. Einführung in Varnish Varnish...