SóProvas


ID
1372606
Banca
FGV
Órgão
AL-BA
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Considere a consulta SQL a seguir. 

select b.nomeAluno from(
select matricula from tbHistoria
where matricula NOT IN(
select matricula from tbMatematica)) a, tbAluno b
where a.matricula - b.matricula

Essa  consulta  SQL  pode  ser  otimizada  obtendo-se  o  mesmo  resultado, empregando-se a seguinte expressão:

Alternativas
Comentários
  • Prezados,

    A consulta do enunciado basicamente busca o nome do aluno da tabela aluno , onde a matricula dele não esteja na tabela de matemática e esteja na tabela de história.
    Ou seja , a consulta busca os nomes dos alunos matriculados em história que não estão matriculados em matemática.

    A alternativa A apresenta um erro de sintaxe, o NOT IN teria que comparar 1 coluna , e não o * retornado pela consulta interna.
    A alternativa B apresenta um erro de sintaxe,  o left outer join teria que ser feito com outra tabela , e não com um select
    A alternativa C apresenta um erro de semântica, da forma que foi construída ela iria trazer todos os alunos matriculados em história , independente de estarem matriculados em matemática ou não.
    A alternativa D apresenta um erro de semântica, da forma que foi construída ela irá trazer todos os alunos matriculados em história que estão matriculados em matemática. 

    Portanto a alternativa correta é a letra E