Sobes.tech
Senior

Jaké typy JOINů znáš a v čem se liší?

sobes.tech AI

Odpověď od AI

Hlavní typy JOIN v SQL a jejich rozdíly:

  • INNER JOIN — vrací pouze záznamy, které mají shody v obou tabulkách podle podmínky spojení.

  • LEFT JOIN (LEFT OUTER JOIN) — vrací všechny záznamy z levé tabulky a odpovídající z pravé. Pokud shoda chybí, pole pravé tabulky budou NULL.

  • RIGHT JOIN (RIGHT OUTER JOIN) — vrací všechny záznamy z pravé tabulky a odpovídající z levé.

  • FULL JOIN (FULL OUTER JOIN) — vrací všechny záznamy z obou tabulek, shodné i neshodné, s NULL tam, kde chybí data.

  • CROSS JOIN — kartézský součin dvou tabulek, vrací všechny možné kombinace řádků.

Pří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ýběr JOIN závisí na tom, jaká data je třeba získat a jak zacházet s chybějícími shodami.