Wanneer MySQL Self Join en voorbeelden gebruiken?

When Use Mysql Self Join



MySQL Self-Join is een type SQL Join waarmee u een tabel aan zichzelf kunt koppelen. Het werkt door andere join-typen te gebruiken, zoals de inner of left join-clausule, om rijen te combineren op basis van de opgegeven voorwaarden.

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.