Sobes.tech
Senior

Ce tipuri de JOIN cunoști și care este diferența dintre ele?

sobes.tech AI

Răspuns de la AI

Principalele tipuri de JOIN în SQL și diferențele lor:

  • INNER JOIN — returnează doar înregistrările care au potriviri în ambele tabele conform condiției de join.

  • LEFT JOIN (LEFT OUTER JOIN) — returnează toate înregistrările din tabela din stânga și cele potrivite din dreapta. Dacă nu există potriviri, câmpurile din tabela dreaptă vor fi NULL.

  • RIGHT JOIN (RIGHT OUTER JOIN) — returnează toate înregistrările din tabela din dreapta și cele potrivite din stânga.

  • FULL JOIN (FULL OUTER JOIN) — returnează toate înregistrările din ambele tabele, potrivite și nepotrivite, cu NULL în locurile fără date.

  • CROSS JOIN — produsul cartezian al celor două tabele, returnând toate combinațiile posibile de rânduri.

Exemplu:

-- 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;

Alegerea JOIN-ului depinde de datele pe care doriți să le obțineți și de modul în care gestionați potrivirile lipsă.