Deze tutorial laat je zien hoe je de MySQL self-join gebruikt om een tabel met zichzelf samen te voegen en aangepaste gegevens te creëren.
Basisgebruik
MySQL self-join gebruikt tabelaliassen om ervoor te zorgen dat u dezelfde tabel niet meer dan één keer in één instructie herhaalt.
OPMERKING: Als je niet bekend bent met tabelaliassen, bekijk dan onze andere tutorial waarin het concept volledig wordt uitgelegd.
De algemene syntaxis voor het gebruik van een self-join is vergelijkbaar met die bij het combineren van twee tabellen. We gebruiken echter tabelaliassen. Beschouw de onderstaande vraag:
KIES alias1.cols,alias2.cols VAN tbl1 alias1,tbl2 alias2 WAAR [voorwaarde]
Voorbeelden van gebruiksscenario's
Laten we voorbeelden gebruiken om te begrijpen hoe u MySQL-zelf-joins kunt uitvoeren. Stel dat u een database heeft met de volgende informatie (zie de volledige zoekopdracht hieronder)
LATEN VALLEN SCHEMA INDIEN BESTAAT zelf;CREËREN SCHEMA zelf;
GEBRUIK MAKEN VAN zelf;
CREËREN TAFEL gebruikers(
ID kaart INT HOOFDSLEUTEL AUTO_INCREMENT ,
Voornaam VARCHAR (255),
e-mail VARCHAR (255),
betalings_id INT ,
abonnement INT
);
INSERT NAAR BINNEN gebruikers(Voornaam,e-mail,betalings_id,abonnement) WAARDEN ('Valerie G. Phillip', ' [e-mail beveiligd]', 10001, 1), ('Sean R. Verhalen', ' [e-mail beveiligd]', 10005, 2), ('Bobby S. Nieuwkomer', ' [e-mail beveiligd]', 100010, 5);
We beginnen met een INNER-join en tenslotte een left-join.
Zelf deelnemen met behulp van Inner Join
De onderstaande query voert een INNER-join uit op de tabel die hierboven is gemaakt.
KIES al1.* VAN gebruikers al1 BINNEN MEEDOEN gebruikers al2 AAN al1.abonnement=al2.abonnement BESTEL DOOR ID kaart DESC ;De uitvoer is hieronder weergegeven:
Zelf deelnemen met Left Join
De voorbeeldquery hieronder legt uit hoe we self join kunnen gebruiken met left join.
KIES ( CONCAT (al1.voornaam, '->',al2.e-mail)) ALS details,al1.payment_id VAN gebruikers al1 LINKS MEEDOEN gebruikers al2 AAN al1.id=al2.id;Het uitvoerresultaat is hieronder:
Conclusie
Deze gids heeft u uitgelegd hoe u MySQL self join kunt gebruiken om met zichzelf aan een tafel deel te nemen.
Bedankt voor het lezen.