Sobes.tech
Senior

Kokius JOIN tipus žinai ir kuo jie skiriasi?

sobes.tech AI

Atsakymas iš AI

Pagrindiniai SQL jungimo (JOIN) tipai ir jų skirtumai:

  • INNER JOIN — grąžina tik tas įrašus, kurie atitinka abiejų lentelių jungimo sąlygą.

  • LEFT JOIN (LEFT OUTER JOIN) — grąžina visus įrašus iš kairės lentelės ir atitinkančius iš dešinės. Jei nėra atitikimo, dešinės lentelės laukai bus NULL.

  • RIGHT JOIN (RIGHT OUTER JOIN) — grąžina visus įrašus iš dešinės lentelės ir atitinkančius iš kairės.

  • FULL JOIN (FULL OUTER JOIN) — grąžina visus įrašus iš abiejų lentelių, atitinkančius ir neatitinkančius, su NULL vietose, kur duomenų nėra.

  • CROSS JOIN — dviejų lentelių kartesianis produktas, grąžina visas galimas eilučių kombinacijas.

Pavyzdys:

-- INNER JOIN
SELECT * FROM A INNER JOIN B ON A.id = B.a_id;

-- LEFT JOIN
SELECT * FROM A LEFT JOIN B ON A.id = B.a_id;

-- RIGHT JOIN
SELECT * FROM A RIGHT JOIN B ON A.id = B.a_id;

-- FULL JOIN
SELECT * FROM A FULL JOIN B ON A.id = B.a_id;

-- CROSS JOIN
SELECT * FROM A CROSS JOIN B;

Jungimo pasirinkimas priklauso nuo to, kokius duomenis norite gauti ir kaip tvarkyti trūkstamus atitikimus.