Sobes.tech
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.