Vysvetlite rozdiel medzi vnútorným a ľavým spojením v SQL a v akých situáciách ich používate?
sobes.tech AI
Odpoveď od AI
Vnútorné spojenie (INNER JOIN) vráti iba tie riadky, ktoré majú zhody v oboch tabuľkách podľa podmienky spojenia. Ak zhody nie sú, riadok sa nezahrnie do výsledku.
Ľavé spojenie (LEFT JOIN) vráti všetky riadky z ľavej tabuľky a zodpovedajúce riadky z pravej. Ak pre riadok z ľavej tabuľky neexistuje zhoda v pravej, vo výsledku sa zobrazia hodnoty z ľavej tabuľky a NULL pre pravú.
Používa sa INNER JOIN, keď sú potrebné iba zhody v oboch tabuľkách, napríklad na získanie zoznamu objednávok s informáciami o zákazníkoch, iba ak zákazník existuje.
LEFT JOIN sa používa, keď je dôležité zachovať všetky údaje z ľavej tabuľky, aj keď pre ne neexistujú zodpovedajúce záznamy v pravej, napríklad na získanie všetkých zákazníkov a ich objednávok, vrátane tých bez objednávok.
Príklad:
SELECT customers.name, orders.id
FROM customers
LEFT JOIN orders ON customers.id = orders.customer_id;