Sobes.tech
Junior

Aký je rozdiel medzi LEFT JOIN a INNER JOIN?

sobes.tech AI

Odpoveď od AI

INNER JOIN vracia iba tie riadky, pre ktoré existuje zhoda v oboch spojených tabuľkách.

LEFT JOIN (alebo LEFT OUTER JOIN) vracia všetky riadky z ľavej tabuľky a zodpovedajúce riadky z pravej tabuľky. Ak v pravej tabuľke nie je zhoda, hodnoty NULL sa vrátia pre stĺpce pravej tabuľky.

Príklad:

Predpokladajme, že existujú dve tabuľky: Zamestnanci (id, meno) a Oddelenia (id, názov, vedúci_id).

INNER JOIN Zamestnanci A Oddelenia NA Zamestnanci.id = Oddelenia.vedúci_id

Vráti iba zamestnancov, ktorí sú vedúcimi oddelení.

LEFT JOIN Zamestnanci A Oddelenia NA Zamestnanci.id = Oddelenia.vedúci_id

Vráti všetkých zamestnancov. Pre tých, ktorí sú vedúcimi oddelení, budú tiež zahrnuté údaje o oddelení. Pre zamestnancov, ktorí nimi nie sú, stĺpce z tabuľky Oddelenia budú obsahovať NULL.