3
respostas

[Dúvida] Nota do Aluno

Fiz um código mais curto, também daria certo?

SELECT nome, curso FROM alunos WHERE id_aluno = (SELECT id_aluno FROM notas ORDER BY nota DESC limit 1);

3 respostas

Oi, tudo bem?

Tanto o código apresentado como solução como o código que você compartilhou, apesar de diferentes estruturas, alcançam o mesmo objetivo: identificar e retornar o nome e curso do aluno com a nota mais alta na tabela "Notas".

Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Achei bem legal o fato de ter mais uma forma de responder, mas me surgiu uma dúvida: Caso houvesse dois alunos com a mesma nota, qual seria o resultado?

Oi, Érica, tudo bem?

Para retornar mais de um aluno com a mesma nota máxima, você pode usar a consulta:

SELECT a.Nome
FROM Alunos a
JOIN Notas n ON a.ID_aluno = n.ID_aluno
WHERE n.Nota = (
    SELECT MAX(Nota)
    FROM Notas
);

A consulta acima pode ser explicada da seguinte forma:

  • Combinar tabelas: JOIN entre "Alunos" e "Notas" usando ID_aluno como chave.
  • Filtrar por nota máxima: WHERE n.Nota = (SELECT MAX(Nota) FROM Notas) garante que apenas a nota mais alta seja considerada.
  • Selecionar nome dos alunos: SELECT a.Nome retorna apenas a coluna Nome da tabela Alunos.

Espero ter ajudado. Caso tenha dúvidas, poste um novo tópico no fórum para podermos te ajudar de forma mais assertiva!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!