Join-AbfrageEine Join-Abfrage bezieht sich auf eine Matching-Abfrage zwischen zwei oder mehr Tabellen, die im Allgemeinen als horizontale Operation bezeichnet wird. Das bedeutet, dass das Endergebnis alle Spalten dieser Tabellen enthält. In MySQL gibt es drei Arten von Join-Operationen: Cross Join, Inner Join und Outer Join. Ein Cross Join wird als CROSS JOIN bezeichnet. Er führt ein kartesisches Produkt für zwei Tabellen aus und gibt die Zusammensetzung aller Spalten in den beiden Tabellen zurück. Wenn beispielsweise die linke Tabelle n Datensätze und die rechte Tabelle m Datensätze enthält, ist das Endergebnis n*m Datensätze. Er kann jedoch auch mit sich selbst verknüpft werden, und das Endergebnis ist n*n Datensätze, wie in der folgenden Anweisung. Wählen Sie * aus Bestellungen als Cross-Join-Bestellungen als b; +---------+--------+---------+--------+ | Bestell-ID | Benutzer-ID | Bestell-ID | Benutzer-ID | +---------+--------+---------+--------+ | 10007 | 2 | 10001 | 1 | | 10006 | 4 | 10001 | 1 | ..... | 10002 | 1 | 10007 | 2 | | 10001 | 1 | 10007 | 2 | +---------+--------+---------+--------+ 49 Zeilen im Satz (0,01 Sek.) Da die Tabelle „Bestellungen“ 7 Datensätze enthält, werden am Ende 49 Datensätze generiert. Eine andere Schreibweise ist wie folgt. mysql> Auswahl * aus Bestellungen als A, Bestellungen als B; Ihre Ergebnisse sind dieselben, aber sie werden unterschiedlich geschrieben. Die obige Schreibmethode ist der Standard für SQL, der 1989 vom American National Standards Institute erstellt wurde und ANSI SQL 89-Standard genannt wird, während die erste Schreibmethode 1992 festgelegt wurde. Eine Verwendung von Cross Joins besteht darin, schnell doppelte Daten zu generieren, wie beispielsweise in der folgenden Anweisung. Aufträge einfügen, wählen Sie a.orderId,a.userId aus Aufträgen als a, Aufträge als b, Limit 10; Das Folgende ist ein innerer Join, der in zwei Teile unterteilt ist. Zuerst wird das kartesische Produkt generiert und dann gemäß der Filterbedingung ON gefiltert. Es werden Werte generiert, die in den beiden Tabellen dieselben Datensätze haben. Neben dem Gleichheitsoperator (=) nach ON können Sie zur Bildung der Verbindungsbedingung auch weitere Operatoren wie beispielsweise Größer als (>), Kleiner als (<) und Ungleich (<>) verwenden. Der letzte ist OUTER JOIN, der Daten zwischen Tabellen gemäß bestimmten Filterbedingungen abgleichen kann. Im Gegensatz zu INNER JOIN gibt es in der von OUTER JOIN hinzugefügten reservierten Tabelle nicht übereinstimmende Daten. MySQL unterstützt LEFT OUTER JOIN und RIGHT OUTER JOIN, und OUTER kann beim Schreiben weggelassen werden. Unten sehen Sie ein Diagramm, das LEFT JOIN zeigt. LEFT JOIN gibt alle Datensätze aus der linken Tabelle (Tabelle1) und die passenden Datensätze aus der rechten Tabelle (Tabelle2) zurück. Unten sehen Sie ein Diagramm, das RIGHT JOIN zeigt. RIGHT JOIN gibt alle Datensätze in der rechten Tabelle (Tabelle 2) und übereinstimmende Datensätze in der linken Tabelle (Tabelle 1) zurück. Set-OperationenIn MySQL gibt es einen UNION-Operator, mit dem zwei oder mehr SELECT-Ergebnissätze kombiniert und doppelte Zeilen zwischen SELECT-Anweisungen gelöscht werden können. Bei der Verwendung sollten Sie die folgenden Grundregeln beachten:
Wenn wir nun die folgende Tabelle haben Tabelle erstellen t1 ( id INT PRIMÄRSCHLÜSSEL ); TABELLE ERSTELLEN t2 ( id INT PRIMÄRSCHLÜSSEL ); IN t1 WERTE EINFÜGEN (1),(2),(3); IN t2 EINFÜGEN WERTE (2),(3),(4); Führen Sie den folgenden SQL-Befehl aus Wählen Sie ID aus t1 UNION WÄHLEN Sie die ID aus t2; Das Endergebnis ist folgendes. +----+ |Ich würde| +----+ | 1 | | 2 | | 3 | | 4 | +----+ 4 Zeilen im Satz (0,00 Sek.) Standardmäßig entfernt die UNION-Anweisung doppelte Daten aus dem Ergebnissatz. Sie können jedoch UNION ALL verwenden, um doppelte Datensätze zu erhalten. WÄHLEN Sie id AUS t1 UNION ALLE WÄHLEN Sie die ID aus t2; Die Ergebnisse sind wie folgt +----+ |Ich würde| +----+ | 1 | | 2 | | 3 | | 2 | | 3 | | 4 | +----+ 6 Zeilen im Satz (0,00 Sek.) Der grundlegende Unterschied zwischen UNION und JOIN besteht darin, dass UNION Ergebnismengen horizontal kombiniert, während JOIN-Anweisungen Ergebnismengen vertikal kombinieren. ZusammenfassenDies ist das Ende dieses Artikels über MySQL-Verbindungen und -Sammlungen. Weitere relevante MySQL-Verbindungen und -Sammlungen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: CSS horizontale Zentrierung und Begrenzung der maximalen Breite
>>: Analyse des rel-Attributs in HTML
Unter Linux können die Befehle cat, more und less...
Verwenden Sie Textausrichtung, Rand: 0 automatisc...
Inhaltsverzeichnis 1. Hintergrund 2. Anweisungen ...
Für Linux-Systemadministratoren ist es von entsch...
1. Installieren Sie mutt sudo apt-get install mut...
Inhaltsverzeichnis Zusammenfassung Umgebung und W...
Inhaltsverzeichnis Vorwort Kurzübersicht: JavaScr...
Heute habe ich ein Problem in HTML gefunden. Es s...
<br />Dieser Artikel soll Anfängern hauptsäc...
1. MySQL-Datenbank installieren ① Herunterladen, ...
Definition und Verwendung von „deaktiviert“ Das d...
Die Installation von MySQL 5.7 auf Ubuntu 1804 wi...
Inhaltsverzeichnis 1. Warum Slots verwenden? 1.1 ...
Inhaltsverzeichnis 1. Betrieb der Datenbank 1.1 E...
Hintergrund: Position: Sticky wird auch Sticky-Po...