Čo je ľavé spojenie (left join) v SQL?
sobes.tech AI
Odpoveď od AI
Ľavé spojenie (LEFT JOIN alebo LEFT OUTER JOIN) v SQL sa používa na spojenie riadkov z dvoch tabuliek.
Výsledok LEFT JOIN zahŕňa:
- Všetky riadky z ľavej (prvej) tabuľky.
- Zodpovedajúce riadky z pravej (druhej) tabuľky, kde sa splní podmienka spojenia.
- Pre riadky ľavej tabuľky, ktorým chýba zodpovedajúci riadok v pravej, budú stĺpce z pravej tabuľky obsahovať hodnoty
NULL.
Príklad syntaxe:
SELECT <zoznam_stĺpcov>
FROM <ľavá_tabuľka> AS L
LEFT JOIN <pravá_tabuľka> AS R ON L.<spájací_stĺpec> = R.<spájací_stĺpec>;
Schéma práce:
Prebieha prehľadávanie každého riadku ľavej tabuľky. Pre každý riadok sa hľadá zodpovedajúci v pravej tabuľke podľa podmienky ON.
- Ak sú zodpovedajúce riadky nájdené, riadok ľavej tabuľky sa spojí so všetkými zodpovedajúcimi riadkami pravej tabuľky.
- Ak zodpovedajúce riadky nie sú nájdené, riadok ľavej tabuľky sa zahrnie do výsledku a stĺpce z pravej tabuľky budú obsahovať
NULL.
Vizualizácia:
Predstavte si dve množiny dát: Left (ľavá tabuľka) a Right (pravá tabuľka). LEFT JOIN vráti všetky prvky z Left a tiež tie prvky z Right, ktoré majú zodpovedajúci záznam v Left. Ak v Left existujú prvky bez zodpovedajúceho v Right, tieto prvky z Left budú stále zahrnuté vo výsledku, ale ich zodpovedajúce polia z Right budú prázdne (NULL).
Porovnanie s inými typmi JOIN:
| Typ JOIN | Popis |
|---|---|
| INNER JOIN | Vráti iba riadky, kde je zhoda medzi oboma tabuľkami. |
| LEFT JOIN | Vráti všetky riadky z ľavej tabuľky a zodpovedajúce riadky z pravej. NULL pre nezodpovedajúce riadky z pravej. |
| RIGHT JOIN | Vráti všetky riadky z pravej tabuľky a zodpovedajúce riadky z ľavej. NULL pre nezodpovedajúce riadky z ľavej. |
| FULL OUTER JOIN | Vráti všetky riadky, ak je zhoda v ktorejkoľvek tabuľke. NULL pre nezodpovedajúce riadky v oboch tabuľkách. |
Takže, LEFT JOIN je užitočný, keď je potrebné získať úplný zoznam záznamov z jednej tabuľky a doplniť ich informáciami z druhej tabuľky, aj keď pre všetky záznamy nemusia existovať zodpovedajúce údaje.