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);
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);
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!
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:
JOIN
entre "Alunos" e "Notas" usando ID_aluno
como chave.WHERE n.Nota = (SELECT MAX(Nota) FROM Notas)
garante que apenas a nota mais alta seja considerada.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!