Kas yra kairioji jungtis (left join) SQL?
sobes.tech AI
Atsakymas iš AI
Kairiojo jungimo (LEFT JOIN arba LEFT OUTER JOIN) SQL naudojamas sujungti įrašus iš dviejų lentelių.
LEFT JOIN rezultatas apima:
- Visus įrašus iš kairės (pirmosios) lentelės.
- Atitinkančius įrašus iš dešinės (antrosios) lentelės, kur įvykdo jungimo sąlyga.
- Kairės lentelės įrašams, kuriems nėra atitikimo dešinėje, dešinės lentelės stulpeliai bus
NULLreikšmės.
Sintaksės pavyzdys:
SELECT <stulpelių sąrašas>
FROM <kairė lentelė> AS L
LEFT JOIN <dešinė lentelė> AS R ON L.<sujungimo stulpelis> = R.<sujungimo stulpelis>;
Darbo schema:
Kiekvienas kairės lentelės įrašas tikrinamas. Kiekvienam įrašui ieškoma atitikmenų dešinėje lentelėje pagal ON sąlygą:
- Jei atitikmenys rasti, kairės įrašas sujungiama su visais atitinkančiais dešinės lentelės įrašais:
- Jei atitikmenų nėra, kairės įrašas įtraukiamas į rezultatą, o dešinės lentelės stulpeliai užpildomi
NULL.
Vizualinis vaizdas:
Įsivaizduokite dvi duomenų aibes: Left (kairė lentelė) ir Right (dešinė lentelė). LEFT JOIN grąžina visus Left elementus ir tuos Right elementus, kurie turi atitikmenį Left. Jei Left yra elementų be atitikmens Right, šie elementai vis tiek bus įtraukti į rezultatą, tačiau jų atitinkami laukai iš Right bus tušti (NULL).
Palyginimas su kitais jungimo tipais:
| Jungimo tipas | Aprašymas |
|---|---|
| INNER JOIN | Grąžina tik tas eilutes, kuriose yra atitikimas abiejose lentelėse. |
| LEFT JOIN | Grąžina visas eilutes iš kairės lentelės ir atitinkančias iš dešinės. NULL jei nėra atitikimo. |
| RIGHT JOIN | Grąžina visas eilutes iš dešinės lentelės ir atitinkančias iš kairės. NULL jei nėra atitikimo. |
| FULL OUTER JOIN | Grąžina visas eilutes, jei yra atitikimas arba ne. NULL jei nėra atitikimo. |
Taigi, LEFT JOIN yra naudingas, kai reikia gauti pilną įrašų sąrašą iš vienos lentelės ir papildyti juos informacija iš kitos lentelės, net jei nėra atitikimo kiekvienam įrašui.