Duomenų bazė bet kurioje kompiuterinėje sistemoje yra struktūrinių arba nestruktūruotų duomenų rinkinys, kurį galima naudoti atliekant įvairias parinktis, tokias kaip kūrimas, trynimas ir kt. Ši duomenų bazė valdoma specialia kalba, vadinama SQL . SQL kalboje yra skirtingų sujungimų, kurie naudojami eilėms iš dviejų ar daugiau lentelių iš susijusio stulpelio surinkti. Kai kurie sujungimai yra Vidinis prisijungimas , Kairė prisijungti , ir Teisingai Prisijunk . Šiame straipsnyje mes išnagrinėsime sąvokas su pavyzdžiais Kairė prisijungti ir kairioji išorinė jungtis. Kartu apžvelgsime ir pagrindinius jų skirtumus.
Kairė prisijungti
Kairysis prisijungimas SQL kalba yra naudojamas norint grąžinti visus duomenis arba įrašus iš kairiosios lentelės ir atitinkančius duomenis ar įrašus iš dešinės lentelės. Scenarijuje, kai nėra atitikties, jungtį vis tiek sudaro kairiosios lentelės eilutės ir rodomas NULL reikšmės dešiniosios lentelės stulpeliams.
Užklausos kontekste žemiau pateikiama kairiojo sujungimo sintaksė.
Sintaksė
PASIRINKITE stulpelius FROM left_table
LEFT JOIN right_table ĮJUNGTA
prisijungimo_sąlyga;
Dabar supraskime kairįjį prisijungimą per paprastą pavyzdį:
Pavyzdys:
1. Klientų_duomenų lentelė:
| Kliento ID | Kliento vardas |
|---|---|
| 1 | Gaurav |
| 2 kabinos algoritmas | Anjali |
| 3 | Ramešas |
2. Užsakymų_duomenų lentelė:
| order_id | Kliento ID | užsakymo data |
|---|---|---|
| 1 3d autocad | 1 | 2023-01-23 |
| 2 | 1 | 2023-02-03 |
| 3 | 3 | 2023-03-05 |
| 4 | 4 | 2023-04-10 |
Užklausa dėl kairiojo prisijungimo
SELECT Customer_Data.customer_id, Customer_Data.customer_name, Orders_Data.order_id, Orders_Data.order_date FROM Customers_Data LEFT JOIN Orders ON Customers_Data.customer_id = Orders_Data.customer_id;>
Rezultatas/išvestis
| Kliento ID | Kliento vardas | order_id | užsakymo data |
|---|---|---|---|
| 1 | Gaurav | 1 | 2023-01-23 |
| 1 | Gaurav | 2 | 2023-02-03 |
| 2 | Anjali | NULL išaukštinimas | NULL |
| 3 | Ramešas | 3 | 2023-03-05 |
Paaiškinimas
Aukščiau pateiktame pavyzdyje. Kairysis prisijungimas apima visas eilutes iš kairiosios lentelės ( Kliento_duomenys ) ir suderino juos su atitinkamomis dešiniosios lentelės eilutėmis ( Užsakymai_Duomenys ). Čia Klientas Gaurav turi 2 užsakymus, Anjali neturi užsakymų (NULL), o Ramesh turi 1 užsakymą.
Kairė išorinė jungtis
Sąvoka Kairė išorinė jungtis yra panašus ir toks pat kaip kairiojo sujungimo, ir abu šie terminai vartojami pakaitomis. Čia naudojamas raktinis žodis Išorinis , kuris yra neprivalomas ir taip pat neturi įtakos rezultatui.
Pažiūrėkime kairiojo išorinio sujungimo sintaksę:
Sintaksė
PASIRINKITE stulpelius
FROM left_table
LEFT OUTTER JOIN right_table ĮJUNGTA
prisijungimo_sąlyga;
Pavyzdys:
Panagrinėkime tas pačias lenteles, naudojamas aukščiau esančiame kairiojo sujungimo pavyzdyje:
Užklausa dėl kairiojo išorinio sujungimo
SELECT Customer_Data.customer_id, Customer_Data.customer_name, Orders_Data.order_id, Orders_Data.order_date FROM Customers_Data LEFT OUTER JOIN Orders ON Customers_Data.customer_id = Orders_Data.customer_id;>
Rezultatas/išvestis
| Kliento ID | Kliento vardas | order_id | užsakymo data |
|---|---|---|---|
| 1 | Gaurav | 1 | 2023-01-23 |
| 1 | Gaurav | 2 | 2023-02-03 |
| 2 | Anjali | NULL | NULL ctc pilna forma |
| 3 | Ramešas | 3 | 2023-03-05 |
| 4 | NULL | NULL | NULL |
Paaiškinimas
Aukščiau pateiktame pavyzdyje neatitinkantys įrašai iš dešinės lentelės ( Užsakymai_Duomenys ) yra įtrauktos, o dešiniuosiuose lentelės stulpeliuose rodomos NULL reikšmės. Taigi klientas su „ Kliento ID “ 4 viduje Užsakymai_Duomenys lentelė, kuri neturi atitinkamo įrašo Kliento_duomenys lentelė taip pat įtraukta į rezultatų rinkinį ir rodomos NULL reikšmės, kurios nebuvo rodomos kairiojo sujungimo sąlygoje.
Skirtumas tarp kairiojo sujungimo ir kairiojo išorinio sujungimo
| Parametras | Kairė prisijungti | Išorinis prisijungimas |
|---|---|---|
| Atitinkantys įrašai | Į kairįjį prisijungimą įtraukiami atitinkami įrašai iš dešinės lentelės. | Kairiajame išoriniame sujungime įtraukiami atitinkami įrašai iš dešiniųjų lentelių. |
| Neatitinkantys įrašai kaka | Kairiajame sujungime neįtraukiami nesutampantys įrašai iš dešiniosios lentelės. | Į kairįjį išorinį sujungimą įtraukiami nesutampantys įrašai iš dešiniosios lentelės, o dešiniųjų lentelės stulpelių reikšmė NULL rodoma. |
| Prisijunkite prie raktinio žodžio | KAIRĖ PRISIJUNGTI | KAIRĖS IŠORĖS PRIJUNGIMAS |
| Nulinės reikšmės | Dešiniųjų lentelės stulpelių NULL reikšmės nerodomos. | Jei nėra atitikties, dešiniųjų lentelės stulpelių reikšmės rodomos NULL. |
| Sintaksė | PASIRINKITE stulpelius FROM left_table LEFT JOIN right_table ON prisijungimo_sąlyga; | PASIRINKITE stulpelius FROM left_table LEFT OUTER JOIN right_table ON prisijungimo_sąlyga; |
DUK apie kairįjį sujungimą ir kairįjį išorinį sujungimą
1. Kada turėtume naudoti kairįjį sujungimą?
Kairėje esančioje lentelėje reikia grąžinti visas eilutes, net jei dešinėje esančioje lentelėje nėra atitinkamų eilučių. Tai naudinga scenarijuje, kai norime išvardyti visus duomenis iš kairiosios lentelės, neatsižvelgiant į tai, ar joje yra duomenų dešinėje lentelėje.
2. Kokie yra kairiojo prisijungimo pranašumai?
Kairiojo sujungimo naudojimas turi įvairių privalumų. Tai gali suteikti mums galimybę rodyti visus duomenis kairiojoje lentelėje, net jei dešinėje lentelėje nėra jokių duomenų. Tai gali būti naudojama atliekant audito užduotis.
3. Paaiškinkite kairiojo išorinio sujungimo rezultatus.
Kairiojo išorinio sujungimo rezultatus sudaro kairiosios lentelės eilutės, taip pat atitinkamos eilutės iš dešinės lentelės. Jei dešinėje lentelėje nėra atitinkamų eilučių, atitinkami rezultatų rinkinio stulpeliai bus rodomi kaip NULL.
4. Ar galime naudoti sąlygą ORDER BY kartu su kairiuoju išoriniu prisijungimu?
Taip, užklausoje galime naudoti sąlygą ORDER BY kartu su kairiuoju išoriniu prisijungimu. Taip sujungimo rezultatai bus išdėstyti taip, kaip ir bet kurios kitos užklausos atveju.