Sobes.tech
Junior

Kuo skiriasi LEFT JOIN ir RIGHT JOIN SQL?

sobes.tech AI

Atsakymas iš AI

LEFT JOIN grąžina visas eilutes iš kairės (pirmojo) lentelės ir atitinkančias eilutes iš dešinės (antrosios). Jei dešinėje lentelėje nėra atitikmenų, rezultatas apima NULL stulpeliams iš dešinės lentelės.

RIGHT JOIN grąžina visas eilutes iš dešinės (antrosios) lentelės ir atitinkančias eilutes iš kairės (pirmosios). Jei kairėje lentelėje nėra atitikmenų, rezultatas apima NULL stulpeliams iš kairės lentelės.

Pagrindinis skirtumas yra tas, kuri lentelė laikoma "pilna", t.y., iš kurios lentelės bus grąžintos visos eilutės nepriklausomai nuo atitikmenų buvimo kitoje lentelėje.

SQL pavyzdys:

Lentelė TableA:

ID ReikšmėA
1 A1
2 A2
3 A3

Lentelė TableB:

ID ReikšmėB
2 B2
3 B3
4 B4

LEFT JOIN:

SELECT *
FROM TableA
LEFT JOIN TableB ON TableA.ID = TableB.ID;

LEFT JOIN rezultatas:

ID (iš TableA) ReikšmėA ID (iš TableB) ReikšmėB
1 A1 NULL NULL
2 A2 2 B2
3 A3 3 B3

RIGHT JOIN:

SELECT *
FROM TableA
RIGHT JOIN TableB ON TableA.ID = TableB.ID;

RIGHT JOIN rezultatas:

ID (iš TableA) ReikšmėA ID (iš TableB) ReikšmėB
2 A2 2 B2
3 A3 3 B3
NULL NULL 4 B4

Dažnai LEFT JOIN ir RIGHT JOIN gali būti keičiami vietomis keičiant lentelių tvarką: A LEFT JOIN B yra lygu B RIGHT JOIN A.