Mi az a bal oldali összekapcsolás (left join) SQL-ben?
sobes.tech MI
Válasz az MI-től
A LEFT JOIN (vagy LEFT OUTER JOIN) SQL-ben arra szolgál, hogy két tábla sorait összekapcsolja.
A LEFT JOIN eredménye a következőket tartalmazza:
- Minden sort a bal (első) táblából.
- Megfelelő sorokat a jobb (második) táblából, ahol a csatlakozási feltétel teljesül.
- A bal táblában lévő, de a jobb táblában nem található sorok esetén a jobb tábla oszlopai
NULLértéket vesznek fel.
Szintaxis példa:
SELECT <oszlopok_listája>
FROM <bal_tábla> AS L
LEFT JOIN <jobb_tábla> AS R ON L.<csatlakozó_oszlop> = R.<csatlakozó_oszlop>;
Működési mód:
Minden bal tábla sorát végigvizsgáljuk. Minden sor esetében keresünk megfelelést a jobb táblában a ON feltétel szerint.
- Ha találunk megfelelést, a bal tábla sorát összekapcsoljuk az összes megfelelő jobb tábla sorával.
- Ha nem találunk megfelelést, a bal tábla sorát belefoglaljuk az eredménybe, és a jobb tábla oszlopai
NULLértéket vesznek fel.
Vizuális ábrázolás:
Képzelj el két adathalmazt: Left (bal tábla) és Right (jobb tábla). A LEFT JOIN minden Left elemét visszaadja, valamint azokat a Right elemeket, amelyek megfelelnek a Left-ben. Ha a Left-ben vannak olyan elemek, amelyekhez nincs megfelelés a Right-ben, ezek az elemek is szerepelnek az eredményben, de a Right-ből származó mezők üresek (NULL).
Összehasonlítás más JOIN típusokkal:
| JOIN típus | Leírás |
|---|---|
| INNER JOIN | Csak azokat a sorokat adja vissza, ahol mindkét táblában van megfelelés. |
| LEFT JOIN | Minden sor a bal táblából és a megfeleltetett sorok a jobbról. NULL a nem megfelelt sorok esetén a jobbról. |
| RIGHT JOIN | Minden sor a jobbról és a megfeleltetett sorok a balról. NULL a nem megfelelt sorok esetén a balról. |
| FULL OUTER JOIN | Minden sor, ahol van megfelelés valamelyik táblában. NULL mindkét táblában, ahol nincs megfelelés. |
Így a LEFT JOIN akkor hasznos, ha egy táblából teljes listát szeretnénk kapni, és kiegészíteni más táblából származó információkkal, még akkor is, ha nem minden rekordnak van megfeleltetése.