Aqui temos duas questões importantes a considerar:
- O professor deseja apenas saber o(s) aluno(s) que obteve(iveram) a maior nota; e
- Em caso de empate devemos retornar todos os alunos que obtiveram a melhor nota.
Minha proposta de solução é esta:
SELECT DISTINCT a.Nome
FROM Alunos AS a
JOIN Notas AS n
ON n.ID_aluno = a.ID_aluno
WHERE a.Curso = 'minha_disciplina'
AND n.Nota = (
SELECT MAX(n2.Nota)
FROM Notas AS n2
JOIN Alunos AS a2
ON a2.ID_aluno = n2.ID_aluno
WHERE a2.Curso = 'minha_disciplina'
);
Com esta consulta o professor vai saber todos os alunos que tiraram a maior nota, apenas em sua disciplina, como a questão pede.