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)