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