Sobes.tech
Senior

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.