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

So setzen Sie das Root-Passwort in mysql8.0.12 zurück

Wenn Sie nach der Installation der Datenbank das ...

Beispielcode und Methode zum Speichern von Arrays in MySQL

Beim Schreiben gespeicherter Prozeduren werden hä...

Tutorial zur Tomcat-Konfiguration für Nginx/Httpd-Lastausgleich

Im vorherigen Blog haben wir über die Verwendung ...

So öffnen Sie eine Seite in einem Iframe

Lösung: Setzen Sie den Zielattributwert des Links ...

Kurztipps für die Linux-Befehlszeile: So finden Sie eine Datei

Wir alle haben Dateien auf unseren Computern gesp...

Implementierungscode der CSS-Formularvalidierungsfunktion

Rendern Prinzip Im Formularelement gibt es ein Mu...

CSS3-Implementierungsbeispiel zum Drehen nur des Hintergrundbildes um 180 Grad

1. Mentale Reise Als ich kürzlich das Cockpit sch...

Detaillierte Erläuterung verschiedener Speichermethoden von Docker-Containern

Inhaltsverzeichnis Vorne geschrieben Mehrere Spei...

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

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

Lösung für den Konflikt zwischen Nginx und Backend-Port

Frage: Bei der Entwicklung des Alice-Verwaltungss...

Beispielanalyse für MySQL-Transaktionen, Isolationsebenen und Sperrenverwendung

Dieser Artikel beschreibt anhand von Beispielen M...