Sobes.tech
Junior — Middle

Explique as diferenças entre uma junção interna e uma junção externa em SQL.

sobes.tech IA

Resposta da IA

No SQL, as junções internas (INNER JOIN) e externas (OUTER JOIN) são usadas para combinar linhas de duas tabelas, mas diferem na forma como selecionam as linhas:

  • Inner join (INNER JOIN) devolve apenas as linhas que têm correspondências em ambas as tabelas de acordo com a condição de junção.

  • Outer join (OUTER JOIN) devolve todas as linhas de uma tabela e as linhas correspondentes da outra. Se não houver correspondências, os locais sem dados serão NULL.

Os joins externos têm três tipos:

  • LEFT OUTER JOIN — todas as linhas da tabela da esquerda + as correspondentes da direita
  • RIGHT OUTER JOIN — todas as linhas da tabela da direita + as correspondentes da esquerda
  • FULL OUTER JOIN — todas as linhas de ambas as tabelas, com NULL onde não há correspondências

Exemplo:

SELECT * FROM users INNER JOIN orders ON users.id = orders.user_id;
-- Vai devolver apenas utilizadores com pedidos

SELECT * FROM users LEFT JOIN orders ON users.id = orders.user_id;
-- Vai devolver todos os utilizadores, mesmo que não tenham pedidos (orders serão NULL)