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);
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!