Sobes.tech
Junior — Middle

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;