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ă.