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)