Sobes.tech
Middle

Mi a különbség a LEFT JOIN és az INNER JOIN között?

sobes.tech MI

Válasz az MI-től

INNER JOIN csak azokat a sorokat adja vissza, amelyek mindkét táblában egyező értékekkel rendelkeznek. Ha az egyik táblában nincs megfelelő rekord, akkor az adott sor nem kerül a eredménybe.

LEFT JOIN (vagy LEFT OUTER JOIN) minden sort visszaad a bal oldali táblából és a megfelelő sorokat a jobb oldaliból. Ha nincs egyezés a jobb oldali táblában, akkor a jobb oldal mezői NULL értéket vesznek fel a eredményben.

Példa:

SELECT A.id, B.value
FROM A
INNER JOIN B ON A.id = B.a_id;

-- Csak azokat az A id-ket adja vissza, amelyekhez tartozó rekord van B-ben

SELECT A.id, B.value
FROM A
LEFT JOIN B ON A.id = B.a_id;

-- Minden A id-t visszaad, és azoknál, ahol nincs megfelelés B-ben, a value NULL lesz