Sobes.tech
Senior

Milyen JOIN típusokat ismersz, és mi a különbségük?

sobes.tech MI

Válasz az MI-től

A SQL-ben az összekapcsolás (JOIN) fő típusai és különbségeik:

  • INNER JOIN — csak azokat a rekordokat adja vissza, amelyek megfelelnek mindkét táblában a csatlakozási feltétel szerint.

  • LEFT JOIN (LEFT OUTER JOIN) — az összes rekordot a bal oldali táblából és a megfelelőt a jobb oldaliból adja vissza. Ha nincs megfelelés, a jobb oldal mezői NULL-ok lesznek.

  • RIGHT JOIN (RIGHT OUTER JOIN) — az összes rekordot a jobb oldali táblából és a megfelelőt a bal oldaliból adja vissza.

  • FULL JOIN (FULL OUTER JOIN) — mindkét táblából az összes rekordot visszaadja, megfelelőt és nem megfelelőt, NULL értékekkel a hiányzó helyeken.

  • CROSS JOIN — két tábla kartézi szorzata, minden lehetséges sor kombinációt visszaad.

Példa:

-- INNER JOIN
SELECT * FROM A INNER JOIN B ON A.id = B.a_id;

-- LEFT JOIN
SELECT * FROM A LEFT JOIN B ON A.id = B.a_id;

-- RIGHT JOIN
SELECT * FROM A RIGHT JOIN B ON A.id = B.a_id;

-- FULL JOIN
SELECT * FROM A FULL JOIN B ON A.id = B.a_id;

-- CROSS JOIN
SELECT * FROM A CROSS JOIN B;

A JOIN kiválasztása attól függ, hogy milyen adatokat szeretnénk kapni, és hogyan kezeljük a hiányzó megfeleléseket.