Kada naudoti „MySQL Self Join“ ir pavyzdžiai

When Use Mysql Self Join



„MySQL Self-Join“ yra SQL prisijungimo tipas, leidžiantis prijungti lentelę prie savęs. Jis veikia naudojant kitus sujungimo tipus, pvz., Vidinio ar kairiojo sujungimo sąlygą, kad sujungtų eilutes pagal nurodytas sąlygas.

Ši pamoka parodys, kaip naudojant „MySQL“ savarankišką sujungimą sujungti lentelę su savimi ir sukurti tinkintus duomenis.







Pagrindinis naudojimas

„MySQL“ savarankiškas prisijungimas naudoja lentelės slapyvardžius, kad užtikrintų, jog vienoje lentelėje daugiau nei vieną kartą nekartojate tos pačios lentelės.



PASTABA: Jei nesate susipažinę su stalo slapyvardžiais, apsvarstykite kitą mūsų vadovėlį, kuris visiškai paaiškina šią sąvoką.



Bendroji savaiminio sujungimo sintaksė yra panaši į tą, kuri derinama su dviem lentelėmis. Tačiau mes naudojame stalo slapyvardžius. Apsvarstykite toliau pateiktą užklausą:





PASIRINKTI slapyvardis1.cols,slapyvardis2.cols NUO tbl1 slapyvardis1,tbl2 slapyvardis2 KUR [būklė]

Naudojimo atvejų pavyzdžiai

Naudokime pavyzdžius, kad suprastume, kaip atlikti „MySQL“ savarankiškus sujungimus. Tarkime, kad turite duomenų bazę, kurioje yra ši informacija (visą užklausą žr. Žemiau)

DROP SCHEMA JEI EKSISTUOJA savarankiškai;
KURTI SCHEMA savarankiškai;
NAUDOTI savarankiškai;
KURTI LENTELĖ vartotojų(
id INT PAGRINDINIS RAKTAS AUTO_INCREMENT ,
Pirmas vardas VARCHAR (255),
paštą VARCHAR (255),
payment_id INT ,
prenumerata INT
);
ĮDĖTI Į vartotojų(Pirmas vardas,paštą,payment_id,prenumerata) VERTYBĖS („Valerie G. Phillip“, '[apsaugotas el. paštas]', 10001, 1), („Šono R. istorijos“, '[apsaugotas el. paštas]', 10005, 2), („Bobby S. Newsome“, '[apsaugotas el. paštas]', 100010, 5);

Pradėsime nuo VIDINIO prisijungimo ir galiausiai prisijungimo iš kairės.



Prisijunkite naudodami vidinį prisijungimą

Toliau pateikta užklausa atlieka INNER sujungimą aukščiau sukurtoje lentelėje.

PASIRINKTI al1.* NUO vartotojai al1 VIDAUS JOIN vartotojai al2 ĮJUNGTA al1.prenumerata=al2.prenumerata RŪŠIUOTI PAGAL id DESC ;

Išvestis parodyta žemiau:

Prisijungimas naudojant kairįjį prisijungimą

Žemiau pateiktame pavyzdiniame užklausoje paaiškinta, kaip galime naudoti savarankišką sujungimą su kairiuoju prisijungimu.

PASIRINKTI ( CONCAT (al1.pavadinimas_pavadinimas, '->',al2.paštas)) AS detales,al1.payment_id NUO vartotojai al1 Kairė JOIN vartotojai al2 ĮJUNGTA al1.id=al2.id;

Išvesties rezultatas yra toks:

Išvada

Šis vadovas paaiškino, kaip galite naudoti „MySQL“ savarankišką prisijungimą, kad prisijungtumėte prie stalo.

Ačiū, kad skaitėte.