Haben Sie die MySQL-Verbindungsabfrage wirklich gelernt?

Haben Sie die MySQL-Verbindungsabfrage wirklich gelernt?

1. Übersicht über Inner Join-Abfragen

Der Inner Join ist eine in Anwendungen sehr häufig verwendete Verbindungsoperation und im Allgemeinen der Standardverbindungstyp. Der Inner Join basiert auf einem Join-Prädikat, das die Spalten zweier Tabellen (z. B. A und B) kombiniert, um eine neue Ergebnistabelle zu erstellen. Die Inner-Join-Abfrage vergleicht jede Zeile der Tabelle A mit jeder Zeile der Tabelle B und findet die Kombination, die das Join-Prädikat erfüllt. Wenn das Join-Prädikat erfüllt ist, werden die übereinstimmenden Zeilen in A und B spaltenweise (nebeneinander) zu einer einzigen Zeile im Ergebnissatz kombiniert.

Die Inner-Join-Abfrageoperation listet die Datenzeilen auf, die den Join-Bedingungen entsprechen, und verwendet Vergleichsoperatoren, um die Spaltenwerte der verbundenen Spalten zu vergleichen. Es gibt drei Typen von inneren Verknüpfungen: Kreuzverknüpfung, gleiche Verknüpfung und natürliche Verknüpfung.

2. Cross Join (Kartesisches Produkt)

Cross Join, auch als „Kartesischer Join“ oder „Produkt“ bekannt, ist die Grundlage aller Arten von inneren Joins.

Wenn die Tabelle als eine Sammlung von Zeilendatensätzen betrachtet wird, gibt der Cross Join das kartesische Produkt der beiden Sammlungen zurück und die Anzahl der im Ergebnissatz zurückgegebenen Datenzeilen entspricht der Anzahl der Datenzeilen in der ersten Tabelle, die die Abfragebedingungen erfüllen, multipliziert mit der Anzahl der Datenzeilen in der zweiten Tabelle, die die Abfragebedingungen erfüllen. Dies ist tatsächlich gleichbedeutend damit, dass die innere Join-Bedingung „immer wahr“ ist oder dass die Join-Bedingung nicht existiert. Wenn A und B zwei Mengen sind, wird ihr Cross Join wie folgt geschrieben: A x B.

Definieren Sie einen Cross Join (kartesisches Produkt) der Routentabelle und der Fahrzeugtabelle.

Beispiel:

Implementieren Sie das kartesische Produkt der Routentabelle und der Fahrzeugtabelle

ANZAHL AUSWÄHLEN(*)
FROM-Zeile 
CROSS JOIN Fahrzeug

3. Inner Join-Syntax und Beispiele

Grammatik:

SELECT Feldliste
VON Tabelle1 [INNER] JOIN Tabelle2 
  ON Tabelle1.Spalte1=Tabelle2.Spalte2
[WHERE-Bedingung]

Beispiel 1:

Verwenden Sie Inner Join, um Fahrzeuginformationen und Fahrerinformationen abzurufen, deren Fahrzeugmodell „DD“ enthält. Die Fahrzeuginformationen müssen alle Spalten umfassen, und die Fahrerinformationen müssen nur den Namen und den Personalausweis enthalten.

SELECT v.*,d.name,d.lizenzNr
VON Fahrzeug v JOIN Fahrer d
  EIN v.TreiberID=d.TreiberID
WO Modell LIKE '%DD%'

Beispiel 2:

Verwenden Sie Inner Join, um die Informationen von Fahrern über 35 Jahren und die vom Fahrer gefahrenen Fahrzeuginformationen abzurufen. Die Fahrzeuginformationen müssen alle Spalten umfassen, und die Fahrerinformationen enthalten nur den Namen, das Geburtsdatum und die Telefonnummer.

SELECT v.*,d.name,d.lizenzNr,d.telefon
FROM Fahrzeug v INNER JOIN Fahrer d
  EIN v.TreiberID=d.TreiberID
WO CEIL(DATEDIFF(JETZT(),Geburtstag)/365)>35

4. Natürliche Verbindungen

Ein natürlicher Join ist ein spezieller innerer Join, der erfordert, dass die Verbindungsbasisspalten der beiden zu verbindenden Tabellen dieselben Felder sein müssen (die Felder sind gleich und die Feldattribute sind gleich). Bei einem natürlichen Join werden alle Spalten mit demselben Namen in den beiden Tabellen verglichen und die doppelten Spalten aus dem Ergebnissatz entfernt. Die Spalten mit demselben Namen in den beiden Tabellen erscheinen nur einmal im Ergebnissatz. Gewöhnliche innere Verknüpfungen entfernen keine doppelten Spalten. (Einige Datenbanken unterstützen keine natürlichen Verbindungen, wie z. B. der saL-Server.)

Die Syntax für einen natürlichen Join lautet wie folgt:

SELECT Feldliste
VON Tabelle1 NATURAL JOIN Tabelle2
[WHERE-Bedingung]

Beispiel:

Verwenden Sie Natural Join, um Fahrzeuginformationen und Fahrerinformationen abzurufen, deren Fahrzeugmodell „DD“ enthält. Die Fahrzeuginformationen müssen alle Spalten umfassen, und die Fahrerinformationen müssen nur den Namen und den Personalausweis enthalten.

SELECT v.*,d.name,d.lizenzNr
FROM Fahrzeug v NATURAL JOIN Fahrer d
WO Modell LIKE '%DD%'

5. Abfrage zum Verbinden mehrerer Tabellen

Wenn die abgefragten Informationen aus mehreren Tabellen stammen, kann durch die Verbindung zweier Tabellen eine Multi-Table-Join-Abfrage erstellt werden.

Nachfolgend sehen Sie die Syntax für eine Join-Abfrage für drei Tabellen:

SELECT Feldliste 
VON Tabelle1 JOIN Tabelle2 
  ON Tabelle1.Spalte1=Tabelle2.Spalte2_1
JOIN Tabelle3
  ON Tabelle2.Spalte2_2=Tabelle3.Spalte3
[WHERE-Bedingung]

veranschaulichen:

(1) table2 ist mit table1 und table3 verbunden.

(2) Das Verfahren zum Verbinden von mehr als drei Tabellen ist das gleiche wie das zum Verbinden von drei Tabellen, welches durch die Verbindung zweier Tabellen miteinander realisiert wird.

Beispiel 1:

Erhalten Sie Kennzeichen, Modell und Fahrernamen aller nicht klimatisierten Fahrzeuge, die Route der Route, den Startbahnhof und die Endbahnhofinformationen

Wählen Sie d.name, v.plateNo, v.model, l.lineNo, l.from_station, l.end_station
VON Fahrzeug v JOIN Fahrer d
  EIN v.TreiberID=d.TreiberID
JOIN Zeile l
  EIN v.lineID=l.lineID
WHERE Typ = 'Auto ohne Klimaanlage'

Beispiel 2:

Holen Sie sich alle Fahrerinformationen von Busunternehmen 2. Es ist die Ausgabe von Name, Personalausweis, Geschlecht und Telefonnummer des Fahrers erforderlich.

Wählen Sie d.Name, d.Lizenznummer, d.Geschlecht, d.Telefon
VON Fahrzeug v JOIN Fahrer d 
  EIN v.TreiberID 
JOIN Zeile l
  EIN v.lineID=l.lineID
WHERE Unternehmen = 'Busunternehmen 2'

6. Einfache Multi-Table-Join-Abfrage

Wenn Sie in der FROM-Klausel direkt alle zu verknüpfenden Tabellen auflisten und anschließend in der WHERE-Klausel die Verknüpfungsbedingungen angeben, handelt es sich um eine einfache Mehrtabellenabfrage, die dieselbe Funktion wie ein Inner Join hat.

Die Abfragesyntax zum Verbinden zweier Tabellen lautet wie folgt:

SELECT Feldliste
VON Tabelle1,Tabelle2
WO Tabelle1.Spalte1=Tabelle2.Spalte2
[UND andere Bedingungen]

Das Abfragesyntaxformat bei Verwendung der Verknüpfung dreier Tabellen lautet wie folgt:

SELECT Feldliste 
VON Tabelle1,Tabelle2,Tabelle3
WO Tabelle1.Spalte1=Tabelle2.Spalte2_1 
  UND Tabelle2.Spalte2_2=Tabelle3.Spalte3
[UND andere Bedingungen]

Beispiel:

Erhalten Sie Kennzeichen, Modell und Fahrernamen aller nicht klimatisierten Fahrzeuge, die Route der Route, den Startbahnhof und die Endbahnhofinformationen

Wählen Sie d.name, v.plateNo, v.model, l.lineNo, l.from_station, l.end_station
VON Fahrzeug v, Fahrer d, Linie l
WO v.Treiber-ID=d.Treiber-ID
  UND v.lineID=l.lineID
UND Typ='Klimatisiertes Auto'

Zusammenfassen

Dies ist das Ende dieses Artikels über MySQL-Verbindungsabfragen. Weitere relevante Inhalte zu MySQL-Verbindungsabfragen 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:
  • Grundlegendes Tutorial zu Multi-Table-Join-Abfragen in MySQL
  • Detaillierte Erläuterung der Gruppenabfrage- und Join-Abfrageanweisungen in MySQL
  • MySQL-Join-Abfrage (Left Join, Right Join, Inner Join)
  • MySQL-Abfrageoptimierung: Einführung in das Sortierlimit für Join-Abfragen (Join-, Order-by- und Limit-Anweisung)
  • Analyse der Verwendung mehrerer MySQL-Left-Join-Abfragen
  • MySQL-Abfrageoptimierung: eine kurze Erläuterung zur Sortierung von Join-Abfragen
  • Detaillierte Erläuterung der MySql-Basisabfrage, Join-Abfrage, Unterabfrage und regulären Ausdrucksabfrage
  • MySQL-Hinweise: Detaillierte Erklärung der Verbindungsabfrage
  • Detaillierte Erläuterung des Mysql Self-Join-Abfragebeispiels
  • Erläuterung des MySQL-Multitabellen-Join-Abfragebeispiels

<<:  Ein Artikel, der Ihnen hilft, jQuery-Animationen zu verstehen

>>:  Textmodus im IE! Einführung in die Rolle von DOCTYPE

Artikel empfehlen

MySQL 8.0.18 Installations-Tutorial unter Windows (Abbildung)

Herunterladen Download-Adresse: https://dev.mysql...

Analyse von MySQL-Lock-Wait- und Deadlock-Problemen

Inhaltsverzeichnis Vorwort: 1. Verstehen Sie Lock...

Detaillierte Erläuterung der primitiven Werte und Referenzwerte in ECMAScript

Inhaltsverzeichnis Vorwort Was sind dynamische Ei...

Beispiel für die Installation von nginx in einem angegebenen Verzeichnis

Aufgrund von Unternehmensanforderungen müssen zwe...

Lösung zur Verwendung der Baidu-Freigabe auf der HTTPS-Seite

Seit der Aktivierung des https-Zugriffs für die g...

Verständnis und Anwendung des Destrukturierungsoperators von JavaScript ES6

Inhaltsverzeichnis Vorwort Die Rolle von Dekonstr...

So installieren Sie Jenkins auf CentOS 8

Um Jenkins auf CentOS 8 zu installieren, müssen S...

Erläuterung der MySQL-Leistungsprüfung durch den Befehl „show processlist“

Der Befehl „show processlist“ ist sehr nützlich. ...

Node.js implementiert die Wiederaufnahme von Haltepunkten

Inhaltsverzeichnis Lösungsanalyse Scheibe Lebensl...

Eine einfache Möglichkeit zum Erstellen einer Docker-Umgebung

Lassen Sie uns zunächst verstehen, was Docker ist...

HTML löst das Problem ungültiger Tabellenbreiteneinstellungen

Wenn Sie den Stil „table-layer:fixed“ für eine Ta...