Senior
Aké typy JOIN poznáš a aký je medzi nimi rozdiel?
sobes.tech AI
Odpoveď od AI
Hlavné typy JOIN v SQL a ich rozdiely:
-
INNER JOIN — vracia iba záznamy, ktoré majú zhody v oboch tabuľkách podľa podmienky spojenia.
-
LEFT JOIN (LEFT OUTER JOIN) — vracia všetky záznamy z ľavej tabuľky a zodpovedajúce z pravej. Ak zhoda chýba, polia pravej tabuľky budú NULL.
-
RIGHT JOIN (RIGHT OUTER JOIN) — vracia všetky záznamy z pravej tabuľky a zodpovedajúce z ľavej.
-
FULL JOIN (FULL OUTER JOIN) — vracia všetky záznamy z oboch tabuliek, zhodné aj nezhodné, s NULL tam, kde chýbajú údaje.
-
CROSS JOIN — kartézsky súčin dvoch tabuliek, vracia všetky možné kombinácie riadkov.
Príklad:
-- 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;
Výber JOIN závisí od toho, aké údaje chcete získať a ako zaobchádzať s chýbajúcimi zhodiami.