Hvornår skal man bruge MySQL Self Join og eksempler

When Use Mysql Self Join



MySQL Self-Join er en type SQL Join, der giver dig mulighed for at slutte en tabel til sig selv. Det fungerer ved at bruge andre sammenføjningstyper, såsom indre eller venstre samlingsklausul til at kombinere rækker baseret på de angivne betingelser.

Denne vejledning viser dig, hvordan du bruger MySQL-selvsamlingen til at flette et bord med sig selv og oprette tilpassede data.







Grundlæggende brug

MySQL selvforbindelse bruger tabelaliaser for at sikre, at du ikke gentager den samme tabel mere end én gang i en sætning.



BEMÆRK: Hvis du ikke er bekendt med tabelaliasser, kan du overveje vores anden vejledning, der forklarer konceptet fuldt ud.



Den generelle syntaks for brug af en selvforbindelse ligner en, når man kombinerer to tabeller. Vi bruger dog tabelaliaser. Overvej forespørgslen vist nedenfor:





VÆLG alias1.cols,alias2.cols FRA tbl1 alias1,tbl2 alias2 HVOR [tilstand]

Eksempel på brugssager

Lad os bruge eksempler til at forstå, hvordan man udfører MySQL -selvforbindelser. Antag, at du har en database med følgende oplysninger (Se fuld forespørgsel nedenfor)

DRÅBE SKEMA HVIS EKSISTERES selv;
SKAB SKEMA selv;
BRUG selv;
SKAB BORD brugere(
id INT PRIMÆRNØGLE AUTO_INCREMENT ,
fornavn VARCHAR (255),
e -mail VARCHAR (255),
betalings -id INT ,
abonnement INT
);
INDSÆT IND I brugere(fornavn,e -mail,betalings -id,abonnement) VÆRDIER ('Valerie G. Phillip', '[e -mail beskyttet]', 10001, 1), ('Sean R. Stories', '[e -mail beskyttet]', 10005, 2), ('Bobby S. Newsome', '[e -mail beskyttet]', 100010, 5);

Vi starter med et INNER -join og til sidst et venstre -join.



Self Join ved hjælp af Inner Join

Forespørgslen nedenfor udfører et INNER -join på tabellen, der er oprettet ovenfor.

VÆLG al1.* FRA brugere al1 INDRE TILSLUTTE brugere al2 al1.abonnement=al2.abonnement BESTIL AF id DESC ;

Outputtet er vist herunder:

Self Join ved hjælp af Left Join

Eksempelforespørgslen nedenfor forklarer, hvordan vi kan bruge selvforbindelse med venstreslutning.

VÆLG ( CONCAT (al1.first_name, '->',al2.email)) SOM detaljer,al1.betaling_id FRA brugere al1 VENSTRE TILSLUTTE brugere al2 al1.id=al2.id;

Outputresultatet er nedenfor:

Konklusion

Denne vejledning ledte dig igennem, hvordan du kan bruge MySQL -selvtilslutning til at slutte sig til et bord med sig selv.

Tak fordi du læste.