Junior
Mi a különbség az INNER JOIN és az OUTER JOIN között?
sobes.tech MI
Válasz az MI-től
INNER JOIN csak azokat a sorokat adja vissza, amelyek megfelelnek a csatlakozási feltételnek mindkét táblában. Ha az egyik táblában nincs megfelelő rekord, akkor az a sor nem kerül az eredménybe.
OUTER JOIN minden sorból az egyik táblában és a másikban a megfelelőt adja vissza, és ha nincs megfelelés, akkor a hiányzó adatok NULL-ként jelennek meg. Három típusú OUTER JOIN létezik:
- LEFT OUTER JOIN — a bal oldali tábla összes sora + a megfelelők a jobbról;
- RIGHT OUTER JOIN — a jobb oldali tábla összes sora + a megfelelők a balról;
- FULL OUTER JOIN — mindkét tábla összes sora, ahol nincs megfelelés, NULL.
Példa:
SELECT * FROM employees INNER JOIN departments ON employees.dept_id = departments.id;
-- csak azokat a munkatársakat adja vissza, akiknek van osztályuk
SELECT * FROM employees LEFT OUTER JOIN departments ON employees.dept_id = departments.id;
-- minden munkatársat visszaad, még akkor is, ha nincs osztályuk (a departments oszlopok NULL lesznek)