Junior — Middle
Aký je rozdiel medzi používaním INNER JOIN a OUTER JOIN v SQL pri spájaní tabuliek?
sobes.tech AI
Odpoveď od AI
INNER JOIN vráti 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, riadok sa nezobrazí vo výsledku.
OUTER JOIN (LEFT, RIGHT alebo FULL) vráti všetky riadky z jednej alebo oboch tabuliek, vrátane tých bez zhody. V takýchto prípadoch sa chýbajúce hodnoty doplnia hodnotou NULL.
Príklad:
-- INNER JOIN: iba zodpovedajúce záznamy
SELECT * FROM users INNER JOIN orders ON users.id = orders.user_id;
-- LEFT OUTER JOIN: všetci používatelia, aj tí bez objednávok
SELECT * FROM users LEFT JOIN orders ON users.id = orders.user_id;