Alternativa C - Uma junção externa direita
Para resolver esta questão, precisamos entender como a posição das tabelas na cláusula FROM define o comportamento dos tipos de junção (JOIN) no SQL.
Análise Detalhada
O cenário descrito apresenta dois requisitos fundamentais:
- Ordem das Tabelas: A tabela
EMPLOYEE_HIST é a primeira na cláusula FROM. Isso significa que ela ocupa a posição Esquerda. Consequentemente, a tabela EMPLOYEES ocupa a posição Direita. - Requisito de Dados: É necessário exibir "Todas as linhas correspondentes e não correspondentes na tabela EMPLOYEES".
Como escolher o JOIN correto?
Em SQL, a escolha entre LEFT JOIN e RIGHT JOIN depende de qual tabela queremos preservar integralmente:
- LEFT JOIN (Junção Externa Esquerda): Preserva todas as linhas da tabela que vem antes do JOIN (a da esquerda).
- RIGHT JOIN (Junção Externa Direita): Preserva todas as linhas da tabela que vem depois do JOIN (a da direita).
Como a tabela EMPLOYEES está listada na segunda posição (à direita), mas é dela que precisamos de todas as linhas, devemos usar uma junção que preserve o lado direito.
| Tipo de Junção | Tabela Preservada (Completude) | Cenário da Questão |
|---|
| INNER JOIN | Apenas correspondências | ❌ Incorreto (exclui não correspondentes) |
| LEFT JOIN | Tabela Esquerda (EMPLOYEE_HIST) | ❌ Incorreto (preserva a tabela errada) |
| RIGHT JOIN | Tabela Direita (EMPLOYEES) | ✅ Correto (atende ao requisito) |
| CROSS JOIN | Produto Cartesiano (tudo com tudo) | ❌ Incorreto (não filtra por chave) |
Portanto, para garantir que todos os registros da tabela EMPLOYEES apareçam, independentemente de haverem dados correspondentes na tabela anterior, a opção correta é a junção externa direita.