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.