Sobes.tech
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)