När ska man använda MySQL Self Join och exempel

When Use Mysql Self Join



MySQL Self-Join är en typ av SQL Join som låter dig ansluta en tabell till sig själv. Det fungerar genom att använda andra sammanfogningstyper som inre eller vänster sammanfogningsklausul för att kombinera rader baserat på de angivna villkoren.

Denna handledning kommer att visa dig hur du använder MySQL-självanslutningen för att slå ihop en tabell med sig själv och skapa anpassade data.







Grundläggande användning

MySQL self-join använder tabellalias för att säkerställa att du inte upprepar samma tabell mer än en gång i ett uttalande.



NOTERA: Om du inte är bekant med tabellalias, överväga vår andra handledning som förklarar konceptet fullständigt.



Den allmänna syntaxen för att använda en självanslutning liknar en när man kombinerar två tabeller. Vi använder dock tabellalias. Tänk på frågan som visas nedan:





VÄLJ alias1.cols,alias2.cols FRÅN tbl1 alias1,tbl2 alias2 VAR [skick]

Exempel på användningsfall

Låt oss använda exempel för att förstå hur man utför MySQL -självanslutningar. Antag att du har en databas med följande information (Se hela frågan nedan)

SLÄPPA SCHEMA OM EXISTERAR själv;
SKAPA SCHEMA själv;
ANVÄNDA SIG AV själv;
SKAPA TABELL användare(
id INT PRIMÄRNYCKEL AUTO_INCREMENT ,
förnamn VARCHAR (255),
e-post VARCHAR (255),
betalnings -id INT ,
prenumeration INT
);
FÖRA IN IN I användare(förnamn,e-post,betalnings -id,prenumeration) VÄRDEN ('Valerie G. Phillip', '[e -postskyddad]', 10001, 1), ('Sean R. Stories', '[e -postskyddad]', 10005, 2), ('Bobby S. Newsome', '[e -postskyddad]', 100010, 5);

Vi börjar med en INNER -anslutning och slutligen en vänster -anslutning.



Self Join med Inre Join

Frågan nedan utför en INNER -koppling på tabellen som skapats ovan.

VÄLJ al1.* FRÅN användare al1 INRE ANSLUTA SIG användare al2 al1. prenumeration=al2. prenumeration SORTERA EFTER id DESC ;

Utmatningen visas nedan:

Självanslutning med vänster anslutning

Exempelfrågan nedan förklarar hur vi kan använda self join med left join.

VÄLJ ( CONCAT (al1.first_name, '->',al2.email)) SOM detaljer,al1.payment_id FRÅN användare al1 VÄNSTER ANSLUTA SIG användare al2 al1.id=al2.id;

Utgångsresultatet är nedan:

Slutsats

Denna guide ledde dig igenom hur du kan använda MySQL self join för att gå med i ett bord med sig själv.

Tack för att du läste.