Junior — Middle
Puteți explica diferențele dintre o îmbinare internă și o îmbinare stângă în SQL?
sobes.tech AI
Răspuns de la AI
Îmbinare internă (INNER JOIN) returnează doar acele rânduri care au corespondențe în ambele tabele conform condiției de îmbinare. Dacă într-una dintre tabele nu există o înregistrare corespunzătoare, acel rând nu va apărea în rezultat.
Îmbinare stângă (LEFT JOIN) returnează toate rândurile din tabela din stânga și rândurile corespunzătoare din tabela din dreapta. Dacă nu există corespondență, valorile din tabela din dreapta vor fi NULL.
Exemplu:
SELECT a.id, a.name, b.order_id
FROM customers a
INNER JOIN orders b ON a.id = b.customer_id;
Va returna doar clienții care au comenzi.
SELECT a.id, a.name, b.order_id
FROM customers a
LEFT JOIN orders b ON a.id = b.customer_id;
Va returna toți clienții, inclusiv pe cei fără comenzi (în acest caz, order_id va fi NULL).