Junior
Qual é a diferença entre INNER JOIN e OUTER JOIN?
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. Se numa das tabelas não houver uma entrada correspondente, essa linha não aparecerá no resultado.
OUTER JOIN devolve todas as linhas de uma tabela e as correspondentes da outra, e se não houver correspondências, nos locais onde faltam dados aparecerão NULL. Existem três tipos de OUTER JOIN:
- 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, onde não há correspondências, NULL.
Exemplo:
SELECT * FROM employees INNER JOIN departments ON employees.dept_id = departments.id;
-- retornará apenas os funcionários que têm departamento
SELECT * FROM employees LEFT OUTER JOIN departments ON employees.dept_id = departments.id;
-- retornará todos os funcionários, mesmo que não tenham departamento (nas colunas departments será NULL)