Junior — Middle
Можете ли да објасните разлике између унутрашњег споја и левог споја у SQL-у?
sobes.tech АИ
Одговор од АИ
Unutrašnje spajanje (INNER JOIN) vraća samo one redove koji imaju podudaranja u obe tabele prema uslovu spajanja. Ako u jednoj od tabela nema odgovarajući zapis, takav red neće biti uključen u rezultat.
Levo spajanje (LEFT JOIN) vraća sve redove iz leve tabele i odgovarajuće redove iz desne tabele. Ako nema podudaranja, vrednosti iz desne tabele će biti NULL.
Primer:
SELECT a.id, a.name, b.order_id
FROM customers a
INNER JOIN orders b ON a.id = b.customer_id;
Vraća samo klijente koji imaju porudžbine.
SELECT a.id, a.name, b.order_id
FROM customers a
LEFT JOIN orders b ON a.id = b.customer_id;
Vraća sve klijente, uključujući one bez porudžbina (u ovom slučaju, order_id će biti NULL).