Sobes.tech
Middle

Ce tipuri de JOIN există în SQL și în ce constau diferențele dintre LEFT JOIN, RIGHT JOIN și INNER JOIN?

sobes.tech AI

Răspuns de la AI

În SQL există mai multe tipuri de JOIN-uri care permit combinarea rândurilor din două tabele în funcție de o anumită condiție:

  • INNER JOIN — returnează doar rândurile care au corespondențe în ambele tabele.
  • LEFT JOIN (LEFT OUTER JOIN) — returnează toate rândurile din tabelul din stânga și rândurile corespunzătoare din tabelul din dreapta. Dacă nu există corespondențe, câmpurile din tabelul din dreapta vor fi NULL.
  • RIGHT JOIN (RIGHT OUTER JOIN) — invers, returnează toate rândurile din tabelul din dreapta și cele corespunzătoare din stânga, cu NULL acolo unde nu există corespondențe.

Exemplu:

Tabelul A:

id nume
1 Alice
2 Bob

Tabelul B:

id oraș
1 Londra
3 Berlin
  • INNER JOIN după id va returna doar id=1 (Alice și Londra).
  • LEFT JOIN va returna:
    • id=1 (Alice, Londra)
    • id=2 (Bob, NULL)
  • RIGHT JOIN va returna:
    • id=1 (Alice, Londra)
    • id=3 (NULL, Berlin)

Astfel, LEFT și RIGHT JOIN păstrează toate rândurile dintr-una dintre tabele, completându-le cu date din cealaltă, în timp ce INNER JOIN păstrează doar cele care corespund.