Wann Sie MySQL Self Join und Beispiele verwenden sollten

When Use Mysql Self Join



MySQL Self-Join ist eine Art von SQL-Join, mit dem Sie eine Tabelle mit sich selbst verknüpfen können. Es funktioniert, indem es andere Join-Typen wie die innere oder linke Join-Klausel verwendet, um Zeilen basierend auf den angegebenen Bedingungen zu kombinieren.

Dieses Tutorial zeigt Ihnen, wie Sie den MySQL-Self-Join verwenden, um eine Tabelle mit sich selbst zusammenzuführen und benutzerdefinierte Daten zu erstellen.







Grundlegende Verwendung

MySQL Self-Join verwendet Tabellenaliase, um sicherzustellen, dass Sie dieselbe Tabelle nicht mehr als einmal in einer Anweisung wiederholen.



HINWEIS: Wenn Sie mit Tabellenaliasen nicht vertraut sind, ziehen Sie unser anderes Tutorial in Betracht, das das Konzept vollständig erklärt.



Die allgemeine Syntax für die Verwendung eines Self-Joins ähnelt der beim Kombinieren von zwei Tabellen. Wir verwenden jedoch Tabellenaliase. Betrachten Sie die unten gezeigte Abfrage:





AUSWÄHLEN alias1.cols,alias2.cols VON tbl1 alias1,tbl2 alias2 WO [Zustand]

Beispielanwendungsfälle

Lassen Sie uns Beispiele verwenden, um zu verstehen, wie MySQL-Self-Joins durchgeführt werden. Angenommen, Sie haben eine Datenbank mit den folgenden Informationen (Siehe vollständige Abfrage unten)

TROPFEN SCHEMA WENN EXISTIERT selbst;
SCHAFFEN SCHEMA selbst;
VERWENDEN selbst;
SCHAFFEN TISCH Benutzer(
Ich würde INT PRIMÄRSCHLÜSSEL AUTO_INCREMENT ,
Vorname VARCHAR (255),
Email VARCHAR (255),
Payment_id INT ,
Abonnement INT
);
EINFÜGUNG HINEIN Benutzer(Vorname,Email,Payment_id,Abonnement) WERTE ('Valerie G. Phillip', ' [E-Mail geschützt] ', 10001, 1), ('Sean R. Geschichten', ' [E-Mail geschützt] ', 10005, 2), ('Bobby S. Neuling', ' [E-Mail geschützt] ', 100010, 5);

Wir beginnen mit einem INNER-Join und schließlich einem Left-Join.



Self Join mit Inner Join

Die folgende Abfrage führt einen INNER-Join für die oben erstellte Tabelle aus.

AUSWÄHLEN al1.* VON Benutzer al1 INNERE BEITRETEN Benutzer al2 AN al1.Abonnement=al2.Abonnement SORTIEREN NACH Ich würde DESC ;

Die Ausgabe ist unten dargestellt:

Self Join mit Left Join

Die folgende Beispielabfrage erklärt, wie wir Self Join mit Left Join verwenden können.

AUSWÄHLEN ( CONCAT (al1.vorname, '->',al2.email)) WIE Einzelheiten,al1.payment_id VON Benutzer al1 LINKS BEITRETEN Benutzer al2 AN al1.id=al2.id;

Das Ausgabeergebnis ist unten:

Abschluss

In dieser Anleitung erfahren Sie, wie Sie mit MySQL Self Join eine Tabelle mit sich selbst verbinden können.

Vielen Dank fürs Lesen.