Sobes.tech
Junior — Middle

Explique a diferença entre INNER JOIN e OUTER JOIN em SQL e em que situações cada um é utilizado.

sobes.tech IA

Resposta da IA

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 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.

Tipos de OUTER JOIN:

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

Exemplo de uso:

  • INNER JOIN — quando apenas os dados relacionados são necessários, por exemplo, pedidos com clientes existentes.
  • LEFT OUTER JOIN — quando se deseja obter todos os clientes, incluindo aqueles sem pedidos.

Exemplo SQL:

SELECT customers.name, orders.id
FROM customers
LEFT JOIN orders ON customers.id = orders.customer_id;

Este comando retornará todos os clientes e seus pedidos, se existirem, caso contrário NULL para os pedidos.