Junior
Čím se liší INNER JOIN od OUTER JOIN?
sobes.tech AI
Odpověď od AI
INNER JOIN vrací pouze řádky, které mají shody v obou tabulkách podle podmínky spojení. Pokud v jedné z tabulek není odpovídající záznam, tento řádek se nezobrazí ve výsledku.
OUTER JOIN vrací všechny řádky z jedné tabulky a odpovídající z druhé, a pokud shody nejsou, na místech chybějících dat budou NULL. Existují tři typy OUTER JOIN:
- LEFT OUTER JOIN — všechny řádky z levé tabulky + odpovídající z pravé;
- RIGHT OUTER JOIN — všechny řádky z pravé tabulky + odpovídající z levé;
- FULL OUTER JOIN — všechny řádky obou tabulek, kde není shoda, NULL.
Příklad:
SELECT * FROM employees INNER JOIN departments ON employees.dept_id = departments.id;
-- vrátí pouze zaměstnance, kteří mají oddělení
SELECT * FROM employees LEFT OUTER JOIN departments ON employees.dept_id = departments.id;
-- vrátí všechny zaměstnance, i když nemají oddělení (ve sloupcích departments bude NULL)