Sobes.tech
Senior

Pasakokite apie JOIN tipus SQL ir paaiškinkite jų skirtumus.

sobes.tech AI

Atsakymas iš AI

SQL yra keletas JOIN tipų, kurie leidžia sujungti duomenis iš dviejų ar daugiau lentelių pagal tam tikrą sąlygą.

Pagrindiniai JOIN tipai:

  • INNER JOIN — grąžina tik tas įrašus, kurie turi atitikmenis abiejose lentelėse.
  • LEFT JOIN (LEFT OUTER JOIN) — grąžina visus įrašus iš kairės lentelės ir atitinkančius iš dešinės; jei atitikmenų nėra, dešinės lentelės laukai bus NULL.
  • RIGHT JOIN (RIGHT OUTER JOIN) — panašus į LEFT JOIN, bet grąžina visus įrašus iš dešinės lentelės.
  • FULL JOIN (FULL OUTER JOIN) — grąžina visus įrašus iš abiejų lentelių, kur nėra atitikmenų, laukai bus NULL.

Skirtumas tarp jų yra tas, kurie įrašai yra išsaugomi, jei nėra atitikmenų:

  • INNER JOIN išmeta įrašus be atitikmenų.
  • LEFT JOIN išsaugo visus iš kairės lentelės.
  • RIGHT JOIN išsaugo visus iš dešinės lentelės.
  • FULL JOIN išsaugo visus iš abiejų lentelių.

Pavyzdys:

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

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

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

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

Go kalboje, dirbant su duomenų bazėmis per SQL užklausas ar ORM, svarbu suprasti, kurį JOIN naudoti, kad gauti reikiamus duomenis ir optimizuoti užklausas.