Sobes.tech
Junior — Middle

Môžete vysvetliť rozdiel medzi vnútorným spojením a ľavým spojením v SQL?

sobes.tech AI

Odpoveď od AI

Vnútorné spojenie (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, taký riadok sa nezobrazí vo výsledku.

Ľavé spojenie (LEFT JOIN) vracia všetky riadky z ľavej tabuľky a zodpovedajúce riadky z pravej tabuľky. Ak zhoda neexistuje, hodnoty z pravej tabuľky budú NULL.

Príklad:

SELECT a.id, a.name, b.order_id
FROM customers a
INNER JOIN orders b ON a.id = b.customer_id;

Zobrazí iba zákazníkov s objednávkami.

SELECT a.id, a.name, b.order_id
FROM customers a
LEFT JOIN orders b ON a.id = b.customer_id;

Zobrazí všetkých zákazníkov, vrátane tých bez objednávok (v tomto prípade bude order_id NULL).