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).