Junior
V čom sa líši INNER JOIN od OUTER JOIN?
sobes.tech AI
Odpoveď od AI
INNER JOIN vracia iba tie riadky, ktoré majú zhody v oboch tabuľkách podľa podmienky spojenia. Ak v jednej z tabuliek nie je zodpovedajúci záznam, tento riadok sa nezobrazí vo výsledku.
OUTER JOIN vracia všetky riadky z jednej tabuľky a zodpovedajúce z druhej, a ak zhody nie sú, na miestach chýbajúcich údajov budú NULL. Existujú tri typy OUTER JOIN:
- LEFT OUTER JOIN — všetky riadky z ľavej tabuľky + zodpovedajúce z pravej;
- RIGHT OUTER JOIN — všetky riadky z pravej tabuľky + zodpovedajúce z ľavej;
- FULL OUTER JOIN — všetky riadky oboch tabuliek, kde nie sú zhody, NULL.
Príklad:
SELECT * FROM employees INNER JOIN departments ON employees.dept_id = departments.id;
-- vráti iba zamestnancov, ktorí majú oddelenie
SELECT * FROM employees LEFT OUTER JOIN departments ON employees.dept_id = departments.id;
-- vráti všetkých zamestnancov, aj tých bez oddelenia (v stĺpcoch departments bude NULL)