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.