Sobes.tech
Junior — Middle

Explica diferența dintre INNER JOIN și OUTER JOIN în SQL și în ce situații se folosește fiecare dintre ele.

sobes.tech AI

Răspuns de la AI

INNER JOIN returnează doar acele rânduri care au corespondențe în ambele tabele conform condiției de join.

OUTER JOIN returnează toate rândurile dintr-un tabel și rândurile corespunzătoare din celălalt. Dacă nu există corespondențe, locurile fără date vor fi NULL.

Tipuri de OUTER JOIN:

  • LEFT OUTER JOIN — toate rândurile din tabelul din stânga + cele corespunzătoare din dreapta.
  • RIGHT OUTER JOIN — toate rândurile din tabelul din dreapta + cele corespunzătoare din stânga.
  • FULL OUTER JOIN — toate rândurile din ambele tabele, cu NULL acolo unde nu există corespondențe.

Exemplu de utilizare:

  • INNER JOIN — când sunt necesare doar datele legate, de exemplu, comenzile cu clienți existenți.
  • LEFT OUTER JOIN — când vrei să obții toți clienții, inclusiv pe cei fără comenzi.

Exemplu SQL:

SELECT customers.name, orders.id
FROM customers
LEFT JOIN orders ON customers.id = orders.customer_id;

Această interogare va returna toți clienții și comenzile lor, dacă există, altfel NULL pentru comenzi.