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.