Kada koristiti MySQL Self Join i primjere

When Use Mysql Self Join



MySQL Self-Join je vrsta SQL pridruživanja koja vam omogućuje pridruživanje tablice samoj sebi. Radi pomoću drugih vrsta pridruživanja, poput unutarnje ili lijeve klauzule spajanja, za kombiniranje redaka na temelju navedenih uvjeta.

Ovaj vodič će vam pokazati kako koristiti MySQL samo-spajanje za spajanje tablice sa sobom i stvaranje prilagođenih podataka.







Osnovna upotreba

MySQL samo-pridruživanje koristi pseudonime tablice kako bi se osiguralo da ne ponavljate istu tablicu više od jednom u jednoj naredbi.



BILJEŠKA: Ako niste upoznati s pseudonimima tablica, razmislite o našem drugom vodiču koji u potpunosti objašnjava koncept.



Opća sintaksa za korištenje samo-pridruživanja slična je onoj kada se kombiniraju dvije tablice. Međutim, koristimo pseudonime tablice. Razmotrite dolje prikazani upit:





ODABERI alias1.cols,alias2.cols IZ tbl1 alias1,tbl2 alias2 GDJE [stanje]

Primjeri upotrebnih slučajeva

Upotrijebimo primjere kako bismo razumjeli kako izvesti MySQL samo pridruživanje. Pretpostavimo da imate bazu podataka sa sljedećim podacima (pogledajte dolje cijeli upit)

PAD SHEMA AKO POSTOJI sebe;
STVORITI SHEMA sebe;
KORISTITI sebe;
STVORITI STOL korisnika(
iskaznica INT GLAVNI KLJUČ AUTO_INCREMENT ,
ime VARCHAR (255),
e -mail VARCHAR (255),
id_plaćanja INT ,
pretplata INT
);
UMETNUTI U korisnika(ime,e -mail,id_plaćanja,pretplata) VRIJEDNOSTI ('Valerie G. Phillip', '[zaštićena e -pošta]', 10001, 1), ('Priče o Seanu R.', '[zaštićena e -pošta]', 10005, 2), ('Bobby S. Newsome', '[zaštićena e -pošta]', 100010, 5);

Počet ćemo s unutarnjim pridruživanjem i na kraju lijevim spajanjem.



Self Join koristeći Inner Join

Upit u nastavku izvodi INNER spajanje u gore stvorenoj tablici.

ODABERI al1.* IZ korisnici al1 UNUTRAŠNJI PRIDRUŽITI korisnici al2 NA al1. pretplata=al2.predplata NARUČI PO iskaznica DESC ;

Izlaz je prikazan ispod:

Self Join pomoću lijevog pridruživanja

Primjer upita u nastavku objašnjava kako možemo koristiti self join s lijevim joinom.

ODABERI ( CONCAT (al1.prvo_ime, '->',al2.email)) KAO pojedinosti,al1.id_plaćanja IZ korisnici al1 LIJEVO PRIDRUŽITI korisnici al2 NA al1.id=al2.id;

Izlazni rezultat je ispod:

Zaključak

Ovaj vodič vodio vas je kroz to kako možete koristiti MySQL samo pridruživanje da biste pridružili stol sa samim sobom.

Hvala na čitanju.