Junior
Kuidas erinevad INNER JOIN ja OUTER JOIN?
sobes.tech AI
Vastus AI-lt
INNER JOIN tagastab ainult need read, millel on vastavus mõlemas tabelis vastavalt ühenduse tingimusele. Kui ühes tabelis puudub vastav kirje, siis see rida ei kuulu tulemustesse.
OUTER JOIN tagastab kõik read ühest tabelist ja vastavad teise tabeli read ning kui vastavust ei ole, asendatakse puuduvad andmed NULL-iga. On kolm OUTER JOIN tüüpi:
- LEFT OUTER JOIN — kõik vasaku tabeli read + vastavad paremal;
- RIGHT OUTER JOIN — kõik parema tabeli read + vastavad vasakul;
- FULL OUTER JOIN — mõlema tabeli kõik read, kus vastavust ei ole, NULL.
Näide:
SELECT * FROM employees INNER JOIN departments ON employees.dept_id = departments.id;
-- tagastab ainult töötajad, kellel on osakond
SELECT * FROM employees LEFT OUTER JOIN departments ON employees.dept_id = departments.id;
-- tagastab kõik töötajad, isegi kui neil puudub osakond (veerudes departments on NULL)