Que tipos de JOIN conhece e qual é a sua diferença?
sobes.tech IA
Resposta da IA
Os principais tipos de JOIN em SQL e as suas diferenças:
-
INNER JOIN — devolve apenas os registos que têm coincidências em ambas as tabelas de acordo com a condição de junção.
-
LEFT JOIN (LEFT OUTER JOIN) — devolve todos os registos da tabela da esquerda e as coincidências da direita. Se não houver coincidências, os campos da tabela da direita serão NULL.
-
RIGHT JOIN (RIGHT OUTER JOIN) — devolve todos os registos da tabela da direita e as coincidências da esquerda.
-
FULL JOIN (FULL OUTER JOIN) — devolve todos os registos de ambas as tabelas, coincidentes e não coincidentes, com NULL nos locais sem dados.
-
CROSS JOIN — produto cartesiano de duas tabelas, devolvendo todas as combinações possíveis de linhas.
Exemplo:
-- 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 escolha do JOIN depende dos dados que se pretende obter e de como lidar com as coincidências ausentes.