Sobes.tech
Junior

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.