Sobes.tech
Junior — Middle

Vysvetlite rozdiel medzi vnútorným a vonkajším spojením v SQL.

sobes.tech AI

Odpoveď od AI

V SQL-u se používajú vnútorné (INNER JOIN) a vonkajšie (OUTER JOIN) spojenia na spojenie riadkov z dvoch tabuliek, ale líšia sa spôsobom výberu riadkov:

  • Vnútorné spojenie (INNER JOIN) vracia iba tie riadky, ktoré majú zhody v oboch tabuľkách podľa podmienky spojenia.

  • Vonkajšie spojenie (OUTER JOIN) vracia všetky riadky z jednej tabuľky a zodpovedajúce riadky z druhej. Ak zhoda chýba, na miestach bez dát budú NULL.

Vonkajšie spojenia majú tri typy:

  • LEFT OUTER JOIN — všetky riadky z ľavej tabuľky + zodpovedajúce z pravej
  • RIGHT OUTER JOIN — všetky riadky z pravej tabuľky + zodpovedajúce z ľavej
  • FULL OUTER JOIN — všetky riadky oboch tabuliek, s NULL tam, kde nie je zhoda

Príklad:

SELECT * FROM users INNER JOIN orders ON users.id = orders.user_id;
-- Vráti iba používateľov s objednávkami

SELECT * FROM users LEFT JOIN orders ON users.id = orders.user_id;
-- Vráti všetkých používateľov, aj keď nemajú objednávky (orders budú NULL)