Sobes.tech
Middle

Aký je rozdiel medzi LEFT JOIN a INNER JOIN?

sobes.tech AI

Odpoveď od AI

INNER JOIN vracia iba tie riadky, ktoré majú zodpovedajúce hodnoty v oboch tabuľkách. Ak v jednej z tabuliek nie je zodpovedajúci záznam, tento riadok sa nezahrnie do výsledku.

LEFT JOIN (alebo LEFT OUTER JOIN) vracia všetky riadky z ľavej tabuľky a zodpovedajúce riadky z pravej. Ak v pravej tabuľke nie je zhoda, v výsledku budú polia pravej tabuľky NULL.

Príklad:

SELECT A.id, B.value
FROM A
INNER JOIN B ON A.id = B.a_id;

-- Vráti iba tie id z A, ktoré majú zodpovedajúci záznam v B

SELECT A.id, B.value
FROM A
LEFT JOIN B ON A.id = B.a_id;

-- Vráti všetky id z A, a pre tie bez zhody v B bude hodnota NULL