Verbindungsabfrage: Es ist das Ergebnis der paarweisen Verbindung der einzelnen Zeilen zweier Abfragen (oder Tabellen), also einer Zeile in einer Tabelle mit einer Zeile in einer anderen Tabelle. Führen Sie ein „horizontales Andocken“ durch, um eine neue Zeile zu erhalten. Verbindungsabfragen umfassen die folgenden verschiedenen Formen und Verbindungsmethoden:
Syntax der Join-Abfrage:
Testdaten: mysql> wähle * aus Test; +----+--------+------+------+ | ID | Name | Geschlecht | Alter | +----+--------+------+------+ | 1 | name1 | Weiblich | 15 | | 2 | name1 | Weiblich | 15 | | 4 | name2 | Männlich | 30 | | 5 | name50 | Männlich | 12 | +----+--------+------+------+ mysql> wähle * vom Benutzer aus; +----+-------+------+ | ID | Name | Alter | +----+-------+------+ | 1 | Name1 | 18 | | 2 | Name2 | 15 | | 3 | Name3 | 20 | | 4 | Name4 | 30 | +----+-------+------+ Kreuzverbindung 1. Ein Cross Join kann eigentlich als „Vollversion“ einer Join-Abfrage betrachtet werden, das heißt, alle Zeilen sind bedingungslos verbunden. 2. Das Schlüsselwort „Kreuz“ kann weggelassen werden; 3. Cross Join wird auch als „kartesisches Produkt“ bezeichnet, was in der Regel von geringem Anwendungswert ist Syntax:
Standardmäßiges Querverbindungsschreiben mysql> wählen Sie * vom Test-Cross-Join-Benutzer aus; +----+--------+------+------+----+-----------+-------+ | ID | Name | Geschlecht | Alter | ID | Name | Alter | +----+--------+------+------+----+-----------+-------+ | 1 | Name1 | Weiblich | 15 | 1 | Name1 | 18 | | 2 | Name1 | Weiblich | 15 | 1 | Name1 | 18 | | 4 | Name2 | Männlich | 30 | 1 | Name1 | 18 | | 5 | name50 | Männlich | 12 | 1 | name1 | 18 | | 1 | Name1 | Weiblich | 15 | 2 | Name2 | 15 | | 2 | Name1 | Weiblich | 15 | 2 | Name2 | 15 | | 4 | name2 | Männlich | 30 | 2 | name2 | 15 | | 5 | name50 | Männlich | 12 | 2 | name2 | 15 | | 1 | Name1 | Weiblich | 15 | 3 | Name3 | 20 | | 2 | Name1 | Weiblich | 15 | 3 | Name3 | 20 | | 4 | name2 | Männlich | 30 | 3 | name3 | 20 | | 5 | name50 | Männlich | 12 | 3 | name3 | 20 | | 1 | name1 | Weiblich | 15 | 4 | name4 | 30 | | 2 | name1 | Weiblich | 15 | 4 | name4 | 30 | | 4 | name2 | Männlich | 30 | 4 | name4 | 30 | | 5 | name50 | Männlich | 12 | 4 | name4 | 30 | +----+--------+------+------+----+-----------+-------+ Verwenden Sie zum Herstellen einer Verbindung direkt „Join“, was einem „Cross Join“ entspricht. Die Standardeinstellung ist „Cross Join“. mysql> wählen Sie * vom Test-Join-Benutzer aus; Die Abfrageergebnisse stimmen mit den oben genannten überein!!! Sie können auch direkt aus Tabelle, Tabelle ... Es ist auch gleichbedeutend mit einer Querverbindung mysql> wähle * aus Test, Benutzer; Die Abfrageergebnisse stimmen mit den oben genannten überein!!! Innerer Join 1. Inner Join basiert tatsächlich auf Cross Join, und einige Daten werden unter bestimmten Bedingungen herausgefiltert. 2. Das Schlüsselwort „inner“ kann weggelassen werden, es wird jedoch empfohlen, es einzuschließen. Die Bedingung beim Join ist das, was wirklich zählt. 3. Inner Join ist die am häufigsten verwendete Join-Abfrage. Ihr Wesen besteht darin, basierend auf Bedingungen „sinnvolle Daten“ herauszufiltern. Syntax:
Suchen Sie in zwei Tabellen nach Daten mit dem gleichen Namensfeld. mysql> wähle * vom Test-Inner-Join-Benutzer auf test.name=Benutzername; +----+-------+------+------+----+-----------+------+ | ID | Name | Geschlecht | Alter | ID | Name | Alter | +----+-------+------+------+----+-----------+------+ | 1 | Name1 | Weiblich | 15 | 1 | Name1 | 18 | | 2 | Name1 | Weiblich | 15 | 1 | Name1 | 18 | | 4 | name2 | Männlich | 30 | 2 | name2 | 15 | +----+-------+------+------+----+-----------+------+ Suchen Sie in zwei Tabellen nach Daten mit demselben Namensfeld und verwenden Sie as, um der Tabelle einen anderen Namen für die Verwendung zu geben mysql> wähle * aus Test als t, innerer Join-Benutzer als u auf t.name=u.name; Die Abfrageergebnisse stimmen mit den oben genannten überein!!! Suchen Sie nach den Daten, bei denen das Namensfeld in den beiden Tabellen gleich ist, Alter>15 in der Testtabelle und Alter>10 in der Benutzertabelle Wenn die Tabelle wiederholte Felder enthält, müssen Sie [Tabellenname.Feldname] verwenden, um sie zu verwenden, zum Beispiel Alter: mysql> Auswahl * vom Test Inner Join User auf test.name=user.name, wobei test.age>15 und user.age>10; +----+-------+------+------+----+-----------+------+ | ID | Name | Geschlecht | Alter | ID | Name | Alter | +----+-------+------+------+----+-----------+------+ | 4 | name2 | Männlich | 30 | 2 | name2 | 15 | +----+-------+------+------+----+-----------+------+ Suchen Sie in den beiden Tabellen nach den Daten, bei denen das Namensfeld gleich ist und das Geschlecht = „männlich“ ist. Wenn die Tabelle keine doppelten Felder enthält, können Sie [Tabellenname.Feldname] oder direkt [Feldname] verwenden, zum Beispiel „Geschlecht“: mysql> wähle * aus Test als t, innerer Join-Benutzer als u auf t.name=u.name, wobei t.sex='男'; mysql> wähle * aus Test als t, innerer Join-Benutzer als u auf t.name=u.name, wobei Geschlecht='Geschlecht'; +----+-------+------+------+----+-----------+------+ | ID | Name | Geschlecht | Alter | ID | Name | Alter | +----+-------+------+------+----+-----------+------+ | 4 | name2 | Männlich | 30 | 2 | name2 | 15 | +----+-------+------+------+----+-----------+------+ Äußerer Join - linker äußerer Join 1. Der Left Outer Join ist eigentlich eine Art Join, der dafür sorgt, dass alle Daten der linken Tabelle abgerufen werden können. 2. Der linke äußere Join basiert tatsächlich auf dem inneren Join plus allen Daten in der linken Tabelle, die die Bedingungen nicht erfüllen 3. Das Schlüsselwort „outer“ kann weggelassen werden. Syntax:
Nehmen Sie die Tabelle links als Maßstab, um sicherzustellen, dass alle Daten in der Tabelle links angezeigt werden und alle nicht übereinstimmenden Daten NULL sind mysql> Auswahl * aus Test links, Benutzer beitreten bei test.name=Benutzername; +----+--------+------+------+------+----------+----------+ | ID | Name | Geschlecht | Alter | ID | Name | Alter | +----+--------+------+------+------+----------+----------+ | 1 | Name1 | Weiblich | 15 | 1 | Name1 | 18 | | 2 | Name1 | Weiblich | 15 | 1 | Name1 | 18 | | 4 | name2 | Männlich | 30 | 2 | name2 | 15 | | 5 | name50 | Männlich | 12 | NULL | NULL | NULL | +----+--------+------+------+------+----------+----------+ Äußerer Join - rechter äußerer Join 1. Der richtige äußere Join ist eigentlich eine Art Join, der sicherstellt, dass alle Daten in der richtigen Tabelle abgerufen werden können. 2. Der rechte äußere Join basiert tatsächlich auf dem inneren Join plus allen Daten in der rechten Tabelle, die die Bedingungen nicht erfüllen 3. Das Schlüsselwort „outer“ kann weggelassen werden. Syntax:
Nehmen Sie die Tabelle rechts als Maßstab, um sicherzustellen, dass alle Daten in der Tabelle rechts angezeigt werden und alle nicht übereinstimmenden Daten NULL sind mysql> wähle * aus dem Test aus, schließe dich dem Benutzer mit test.name=user.name an; +------+-------+------+------+----+-----------+------+ | ID | Name | Geschlecht | Alter | ID | Name | Alter | +------+-------+------+------+----+-----------+------+ | 1 | Name1 | Weiblich | 15 | 1 | Name1 | 18 | | 2 | Name1 | Weiblich | 15 | 1 | Name1 | 18 | | 4 | name2 | Männlich | 30 | 2 | name2 | 15 | | NULL | NULL | NULL | NULL | 3 | Name3 | 20 | | NULL | NULL | NULL | NULL | 4 | Name4 | 30 | +------+-------+------+------+----+-----------+------+ Zusammenfassen Dies ist das Ende dieses Artikels über die Syntax und Beispiele von MySQL-Join-Abfragen. Weitere relevante Inhalte zu MySQL-Join-Abfragen finden Sie in den vorherigen Artikeln von 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:
|
<<: So fragen Sie ab, ob die MySQL-Tabelle gesperrt ist
>>: Installations-JDK-Tutorialanalyse für Linux-System (Centos6.5 und höher)
Die erste Methode zur Parameterübergabe ist die d...
Inhaltsverzeichnis Vorwort zx-Bibliothek $`Befehl...
Inhaltsverzeichnis 1. Kommunikation zwischen Vate...
Wenn MySQL Version 5.0 bereits auf dem Computer v...
1. Verwandte Konzepte 1.1 Jenkins-Konzepte: Jenki...
Was ist Blubbern? Es gibt drei Phasen im DOM-Erei...
Alle aufeinanderfolgenden Leerzeichen oder Leerze...
Aus SEO- und Sicherheitsgründen ist eine 301-Weit...
Im Docker-Design führt ein Container nur eine Anw...
Bereiten Sie eine CentOS6-Installationsdiskette (...
Inhaltsverzeichnis Problembeschreibung Rendern Dr...
Um eine CSS-Bildschirmgrößenanpassung zu erreiche...
Inhaltsverzeichnis 1. Einführung in Portainer 2. ...
Indexdefinition: Es handelt sich um eine separate...
1. Warum wird das Auswerfen nicht empfohlen? 1. W...