Tiefgreifendes Verständnis der MySQL-Selbstverbindung und Join-Assoziation

Tiefgreifendes Verständnis der MySQL-Selbstverbindung und Join-Assoziation

1. MySQL-Selbstverbindung

MySQL muss beim Abfragen von Informationen manchmal eine Verbindung zu sich selbst herstellen (Selbstverbindung), daher müssen wir einen Alias ​​für die Tabelle definieren. Nehmen wir ein Beispiel. Das Folgende ist eine Wareneinkaufstabelle. Wir müssen alle Informationen finden, deren Einkaufspreis höher ist als der von Huihui.

Wenn wir diese Tabelle sehen, bedienen wir sie im Allgemeinen zunächst mit den folgenden Anweisungen:

Wählen Sie * aus Einkaufen, wo Preis>27

Wie Sie sich vorstellen können, ist das ganz einfach. Was ist, wenn Sie die detaillierten Daten der Datenbanktabelle nicht kennen oder die Datenmenge recht groß ist? Als Datenbankadministrator müssen wir andere Methoden verwenden, um die benötigten Daten schnell zu finden.

Schritt für Schritt Abfrage

Der einfachste Weg ist auch am leichtesten vorstellbar:

SELECT price FROM shopping WHERE name='惠惠' //Das Ergebnis der Preisabfrage ist 27
Wählen Sie * aus Einkaufen, wo Preis>27

Im Vergleich zur Selbstverbindungsmethode erfordert diese Methode einen manuellen Eingriff in die Zwischenergebnisse, was automatischen Verarbeitungsvorgängen im Programm offensichtlich nicht förderlich ist.

Selbstverbindungsmethode:

SELECT b.* 
vom Einkaufen als A, Einkaufen als B
wobei a.name='Name' 
und a.Preis<b.Preis 
Bestellung nach B.ID

Wir können die folgenden Tabelleninformationen erhalten:


Notiz:

Obwohl die Aliase a und b unterschiedliche Namen haben, handelt es sich um dieselbe Tabelle. Der Zweck der Definition von Aliasen besteht darin, das Löschen und Auswählen zu erleichtern.

Führen Sie „Select through“ (Zwischentabelle) aus, um b.* zu erhalten. Dies ist das Endergebnis.

Unterabfragen

Unterabfragen sind auch häufig verwendete Methoden, um Auswahlen in Auswahlen zu verschachteln.

Der Implementierungscode lautet wie folgt:

Wählen Sie * aus dem Einkauf 
WO Preis>(Preis aus „Shopping“ auswählen, wobei Name=„Preis“)

Die Ergebnisse sind unten dargestellt. Man kann erkennen, dass die mit beiden Methoden erzielten Ergebnisse gleich sind:


VERBINDEN

Innerer Join

Die Hauptfunktion des Inner Join besteht darin, den Ergebnissatz zurückzugeben, wenn mindestens eine Übereinstimmung in der Tabelle vorhanden ist. Der Inner Join und der Join haben hier dieselbe Funktion, daher werden sie zusammen eingeführt.
Nachfolgend sind zwei Tabellen aufgeführt, nämlich Waren- und Kategorietabellen:

SELECT * FROM Waren INNER JOIN Kategorie 
EIN waren.id=kategorie.waren_id 
BESTELLEN NACH gods.id

Das Ergebnis ist wie folgt:

LINKS VERBINDEN

Das Schlüsselwort LEFT JOIN gibt alle Zeilen aus der linken Tabelle (table_name1) zurück, auch wenn in der rechten Tabelle (table_name2) keine passenden Zeilen vorhanden sind. Es wird empfohlen, bei der Durchführung von Projekten die Linksassoziation zu verwenden. Es gibt jedoch viele Tabellenassoziationen. Eine Tabelle ist links mit a verknüpft, gleichzeitig aber rechts mit b. In diesem Fall kann das Hinzufügen einer Rechtsverknüpfung das Schreiben erleichtern.

Wenden Sie die ersten beiden Tabellen an, um eine Left-Join-Abfrage durchzuführen:

Wählen Sie Waren aus.*,Kategorie.Kategorienname 
VON Waren LINKS JOIN Kategorie 
EIN waren.id=kategorie.waren_id 
BESTELLEN NACH waren.id 


RECHTS BEITRETEN

Das Schlüsselwort RIGHT JOIN gibt alle Zeilen aus der rechten Tabelle (table_name2) zurück, auch wenn in der linken Tabelle (table_name1) keine übereinstimmenden Zeilen vorhanden sind. Wenden Sie die ersten beiden Tabellen an, um eine Right-Join-Abfrage durchzuführen:

WÄHLEN Sie a.Warenname,a.Preis,b.*
Von Waren als
RIGHT JOIN Kategorie als b
EIN a.id=b.waren_id
BESTELLEN NACH b.id 


Für Assoziationen mehrerer Tabellen fügen Sie einfach ein paar weitere Assoziationsanweisungen hinzu.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels Ihnen bei Ihrem Studium oder Ihrer Arbeit helfen kann. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Analyse der Verwendung mehrerer MySQL-Left-Join-Abfragen
  • MySQL-Optimierung: Join statt Unterabfrage verwenden
  • MySQL-Abfrageoptimierung: Einführung in das Sortierlimit für Join-Abfragen (Join-, Order-by- und Limit-Anweisung)
  • Detailliertes Tutorial zur Verwendung der JOIN-Anweisung zum Ausführen von Verbindungsvorgängen in MySQL
  • Wissenspunkte zum Prinzip der MySQL-Join-Abfrage
  • MySQL-Join-Abfragesyntax und Beispiele
  • Zusammenfassung mehrerer häufig verwendeter Verbindungsmethoden in MySQL

<<:  jQuery implementiert die Funktion zum Ziehen von Bildern mit der Maus

>>:  So importieren Sie txt in MySQL unter Linux

Artikel empfehlen

Beispielanalyse der Verwendung von Dockerfile-Textdateien

Dockerfile ist eine Textdatei, die zum Erstellen ...

Wie stelle ich Tomcat als automatisch gestarteten Dienst ein? Der schnellste Weg

Stellen Sie Tomcat so ein, dass der Dienst automa...

Grafisches Tutorial zur kostenlosen Installationsversion von MySQL 5.7.21 winx64

Konfigurationsmethode für die kostenlose Installa...

Tiefgreifendes Verständnis der Vue-cli4-Routing-Konfiguration

Inhaltsverzeichnis Vorwort - Vue Routing 1. Die g...

So erstellen Sie ein Docker-Repository mit Nexus

Das mit dem offiziellen Docker-Register erstellte...

So erstellen Sie schnell eine statische Website in der Alibaba Cloud

Vorwort: Als Junior-Programmierer träume ich davo...

Detaillierte Erklärung der Anwendungsfälle von Vue-Listenern

Die erste Möglichkeit besteht darin, jQuery's...

Implementierung eines geplanten MySQL-Sicherungsskripts unter Windows

Wenn Sie auf einem Windows-Server regelmäßig Date...

MySQL-Join-Abfragesyntax und Beispiele

Verbindungsabfrage: Es ist das Ergebnis der paarw...

MySQLs Methode zum Umgang mit doppelten Daten (Verhindern und Löschen)

Einige MySQL-Tabellen können doppelte Datensätze ...

Eine kurze Diskussion über zwei Strombegrenzungsmethoden in Nginx

Die Belastung wird im Allgemeinen während des Sys...