Sobes.tech
Junior

Ce este o îmbinare stângă (left join) în SQL?

sobes.tech AI

Răspuns de la AI

Îmbinarea stângă (LEFT JOIN sau LEFT OUTER JOIN) în SQL este utilizată pentru combinarea rândurilor din două tabele.

Rezultatul LEFT JOIN include:

  • Toate rândurile din tabelul din stânga (primul).
  • Rândurile corespunzătoare din tabelul din dreapta (al doilea), unde condiția de îmbinare este îndeplinită.
  • Pentru rândurile din tabelul din stânga care nu au corespondență în dreapta, coloanele din tabelul din dreapta vor conține valori NULL.

Exemplu de sintaxă:

SELECT <lista_de_coloane>
FROM <tabel_stânga> AS L
LEFT JOIN <tabel_dreapta> AS R ON L.<coloana_de_îmbinare> = R.<coloana_de_îmbinare>;

Mod de funcționare:

Fiecare rând din tabelul din stânga este parcurs. Pentru fiecare rând, se caută corespondențe în tabelul din dreapta conform condiției ON.

  • Dacă se găsesc corespondențe, rândul din tabelul din stânga este combinat cu toate rândurile corespunzătoare din tabelul din dreapta.
  • Dacă nu se găsesc corespondențe, rândul din tabelul din stânga este inclus în rezultat, iar coloanele din tabelul din dreapta sunt completate cu NULL.

Reprezentare vizuală:

Imaginați-vă două seturi de date: Left (tabelul din stânga) și Right (tabelul din dreapta). LEFT JOIN returnează toate elementele din Left, precum și cele din Right care au corespondență în Left. Dacă în Left există elemente fără corespondență în Right, aceste elemente din Left vor fi totuși incluse în rezultat, dar câmpurile corespunzătoare din Right vor fi goale (NULL).

Compararea cu alte tipuri de JOIN:

Tip JOIN Descriere
INNER JOIN Returnează doar rândurile în care există o corespondență între cele două tabele.
LEFT JOIN Returnează toate rândurile din tabelul din stânga și rândurile corespunzătoare din dreapta. NULL pentru cele fără corespondență în dreapta.
RIGHT JOIN Returnează toate rândurile din tabelul din dreapta și rândurile corespunzătoare din stânga. NULL pentru cele fără corespondență în stânga.
FULL OUTER JOIN Returnează toate rândurile în care există o corespondență în oricare dintre tabele. NULL pentru cele fără corespondență în ambele tabele.

Astfel, LEFT JOIN este util atunci când doriți să obțineți o listă completă de înregistrări dintr-un tabel și să le completați cu informații din alt tabel, chiar dacă nu toate înregistrările au corespondență.