Junior
Čime se razlikuje INNER JOIN od OUTER JOIN?
sobes.tech АИ
Одговор од АИ
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, taj red neće biti uključen u rezultat.
OUTER JOIN vraća sve redove iz jedne tabele i odgovarajuće iz druge, a ako nema podudaranja, na mestima gde nedostaju podaci biće NULL. Postoje tri vrste OUTER JOIN:
- LEFT OUTER JOIN — svi redovi iz leve tabele + odgovarajući iz desne;
- RIGHT OUTER JOIN — svi redovi iz desne tabele + odgovarajući iz leve;
- FULL OUTER JOIN — svi redovi iz obe tabele, gde nema podudaranja, NULL.
Primer:
SELECT * FROM employees INNER JOIN departments ON employees.dept_id = departments.id;
-- vraća samo zaposlene koji imaju odeljenje
SELECT * FROM employees LEFT OUTER JOIN departments ON employees.dept_id = departments.id;
-- vraća sve zaposlene, čak i ako nemaju odeljenje (u kolonama departments biće NULL)