MySQL-Join-Abfragesyntax und Beispiele

MySQL-Join-Abfragesyntax und Beispiele

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:

Cross Join, Inner Join, Outer Join (unterteilt in: Left Outer Join, Right Outer Join)

Syntax der Join-Abfrage:

Wählen Sie * aus Tabellenname [Verbindungsmethode], verbinden Sie Tabellenname [unter Verbindungsbedingung], wobei ...;

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:

Wählen Sie * aus Tabellenname, Tabellenname;
Wählen Sie * aus dem Tabellennamen, verbinden Sie den Tabellennamen;
Wählen Sie * aus dem Tabellennamen den Cross-Join-Tabellennamen;

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:

Wählen Sie * aus dem Tabellennamen, verbinden Sie den Tabellennamen gemäß der Verbindungsbedingung;
Wählen Sie * aus dem Tabellennamen den inneren Join-Tabellennamen unter Join-Bedingung;

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:

Wählen Sie * aus dem Tabellennamen links [äußerer] Join unter Join-Bedingung, wobei …;

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:

Wählen Sie * aus dem Tabellennamen rechts [äußerer] Join unter Join-Bedingung, wobei …;

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:
  • Probleme mit Join-Abfragen und Unterabfragen in MySQL
  • Detaillierte Erläuterung der MySQL-Multitabellen-Joinabfrage
  • Welche Arten von MySQL-Verbindungsabfragen kennen Sie?
  • Prinzip und Anwendung der MySQL-Verbindungsabfrage
  • Detaillierte Erläuterung der Prinzipien und Anwendungsbeispiele von MySQL-Joinabfragen, Union-Abfragen und Unterabfragen
  • Detaillierte Erläuterung des Mysql Self-Join-Abfragebeispiels
  • Erläuterung des MySQL-Multitabellen-Join-Abfragebeispiels
  • Detaillierte Erläuterung der MySQL-Verbindungsabfrage

<<:  So fragen Sie ab, ob die MySQL-Tabelle gesperrt ist

>>:  Installations-JDK-Tutorialanalyse für Linux-System (Centos6.5 und höher)

Artikel empfehlen

Die ultimative Lösung zum Schreiben von Bash-Skripten mit Node.js

Inhaltsverzeichnis Vorwort zx-Bibliothek $`Befehl...

Wie implementiert Vue die Kommunikation zwischen Komponenten?

Inhaltsverzeichnis 1. Kommunikation zwischen Vate...

Mysql 5.6.37 Winx64-Installation Dual-Version MySQL-Hinweise

Wenn MySQL Version 5.0 bereits auf dem Computer v...

Einführung in Jenkins und wie man Jenkins mit Docker bereitstellt

1. Verwandte Konzepte 1.1 Jenkins-Konzepte: Jenki...

Detaillierte Analyse des Event-Bubbling-Mechanismus in JavaScript

Was ist Blubbern? Es gibt drei Phasen im DOM-Erei...

Eine kurze Erläuterung zu Leerzeichen und Leerzeilen im HTML-Code

Alle aufeinanderfolgenden Leerzeichen oder Leerze...

Lösen Sie das Problem der Containerverwaltung mit Docker Compose

Im Docker-Design führt ein Container nur eine Anw...

Beispiel für eine adaptive CSS-Bildschirmgrößenimplementierung

Um eine CSS-Bildschirmgrößenanpassung zu erreiche...

Detaillierte Erläuterung des Docker-Visualisierungsgrafiktools Portainer

Inhaltsverzeichnis 1. Einführung in Portainer 2. ...