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

Proxy realisiert das Prinzip der bidirektionalen Bindung von Vue3-Daten

Inhaltsverzeichnis 1. Vorteile von Proxy gegenübe...

So verwenden Sie vue3+TypeScript+vue-router

Inhaltsverzeichnis Einfach zu bedienen Erstellen ...

Der grundlegendste Code für Webseiten

◆Zu Favoriten hinzufügen veranschaulichen Klicken...

MySQL-Grundlagen-Tutorial: Detaillierte Erklärung der DML-Anweisungen

Inhaltsverzeichnis DML-Anweisungen 1. Datensätze ...

Informationen zum Textumbruchproblem bei IE-Labels (LI)

Ich habe lange damit gekämpft und nach einiger Suc...

Grundsätze und Nutzungsdetails für MySQL 8.0-Benutzer- und Rollenverwaltung

Dieser Artikel beschreibt die Benutzer- und Rolle...

Beginnen Sie CSS-Pseudoklassennamen nicht mit Zahlen

Wenn Neulinge Div+CSS entwickeln, müssen sie die ...

Centos8.3, Docker-Bereitstellung, Springboot-Projekt, tatsächliche Fallanalyse

Einführung Derzeit ist k8s sehr beliebt und ich h...

So implementieren Sie ein Hover-Dropdown-Menü mit CSS

Wie üblich werde ich heute über einen sehr prakti...

Detaillierte Erklärung der MySQL-Alter-Ignore-Syntax

Als ich heute bei der Arbeit war, wurde mir von d...