Estou tentando fazer uma consultar no banco de dados com a função EXISTS mas o mesmo retorna um resultado não esperado. Minha consulta seria exibir o ID e nome dos alunos que tiveram aulas com o professor Jose (ID=2) em 2016 e que tiveram aula com o professor Carlos (ID=1) em algum ano.
Dados da minha tabela Historico onde consta todas as chaves estrangeiras:
Fiz a consulta através do código:
Select a.ra,a.nome from aluno a,historicos h where a.ra=h.ra and h.cod_prof=2 and h.ano=2016 and exists (Select 1 from historicos h,aluno a where a.ra=h.ra and h.cod_prof=1) group by a.nome;
O problema é que esse código me retorna apenas os alunos que tiveram aula com o professor de ID=2 descartando meu Select dentro do EXISTS. Alguma solução??? Não conseguir entender pq está retornando esse resultado.