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

Detaillierte Erklärung wichtiger Kaskadierungskonzepte in CSS

Kürzlich stieß ich im Verlauf des Projekts auf ei...

Fehler beim reduzierten Tabellenzeilenelement

Nehmen wir ein Beispiel: Der Code ist sehr einfach...

Zusammenfassung eines CSS-Codes, der die gesamte Site grau macht

Um den Märtyrern und Opfern des Kampfes gegen die...

MySQL-Trigger: Beispielanalyse zum Erstellen mehrerer Trigger

Dieser Artikel beschreibt anhand eines Beispiels ...

So installieren Sie allgemeine Komponenten (MySQL, Redis) in Docker

Docker installiert MySQL Docker-Suche MySQL. Such...

js, um einen Boden-Scrolling-Effekt zu erzielen

In diesem Artikel wird jQuery verwendet, um den E...

So implementieren Sie Hot Deployment und Hot Start in Eclipse/Tomcat

1. Hot Deployment: Das bedeutet, das gesamte Proj...