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

Ubuntu 20.04 – Bestes Konfigurationshandbuch (unverzichtbar für Anfänger)

1. Systemkonfiguration 1. Deaktivieren Sie das Su...

Welche Schleife ist in JavaScript die schnellste?

Wenn wir wissen, welche For-Schleife oder welcher...

Zusammenfassung der MySQL-Datenmigration

Inhaltsverzeichnis Vorwort: 1. Über die Datenmigr...

Lösung für das Versagen von Docker beim Freigeben von Ports

Heute bin ich auf eine sehr seltsame Situation ge...

Vue ruft die Computerkamera auf, um die Fotofunktion zu realisieren

In diesem Artikelbeispiel wird der spezifische Co...

Zusammenfassung der Lösungen für allgemeine Linux-Probleme

1. Centos7 unter VMware verbinden und eine feste ...

CSS3 zum Erzielen von Zeitleisteneffekten

Als ich kürzlich meinen Computer einschaltete, sa...

So halten Sie eine lange Verbindung aufrecht, wenn Sie den Nginx-Reverse-Proxy verwenden

· 【Szenenbeschreibung】 Nach HTTP1.1 unterstützt d...

Alibaba Cloud Centos7 Installation und Konfiguration von SVN

1. SVN-Server installieren yum installiere Subver...

Lernprogramm für HTML-Webseitenlisten-Tags

Lernprogramm zum Erlernen von Listen-Tags für HTML...