1
resposta

oura forma de resolver o exercício 2 do desafio do gerenciamento escolar

opa pessoal, alguém conseguiria validar a minha linha de raciocínio?

minha lógica foi a seguinte:
1- a primeira sub consulta: - SELECT id_disciplina FROM Disciplinas D WHERE D.Nome_Disciplina = 'Matemática' - foi para buscar a informação do id da disciplina 'matemática'. podia ter colocado id=1? podia, mas queria tornar minha vida mais difícil;
2 - segunda sub consulta: pegando o id_disciplina da primeira sub consulta, eu criei outra sub consulta que busque a maior nota associada a essa disciplina e me traga o id do aluno detentor da nota, código: - SELECT id_aluno from Notas n WHERE n.ID_Disciplina = (subconsulta1) order by n.Nota DESC LIMIT 1 - isso faz com que o resultado dessa subconsulta seja a maior nota
3 CONDIÇÃO DO JOIN: apos então a subconsulta me retornar o id da maior nota e o id do maior aluno, eu fiz com que minha consulta só me retornasse o nome, nota e disciplina dos id's que eu retornei nas sub consultas.

mais complexo mas queria treinar as subconsultas

SELECT a.nome_aluno, n.nota, D.Nome_Disciplina from Alunos a
JOIN Notas n on a.id_aluno = n.id_aluno
JOIN Disciplinas D on n.ID_Disciplina = d.ID_Disciplina
WHERE n.ID_Aluno = (SELECT id_aluno from Notas n 
            WHERE n.ID_Disciplina = (SELECT id_disciplina FROM Disciplinas D
                    WHERE D.Nome_Disciplina = 'Matemática')	
            order by n.Nota DESC LIMIT 1)
            and n.id_nota = (SELECT id_nota from Notas n 
            WHERE n.ID_Disciplina = (SELECT id_disciplina FROM Disciplinas D
                    WHERE D.Nome_Disciplina = 'Matemática')	
            order by n.Nota DESC LIMIT 1);
1 resposta

Olá, Lucas! Como vai?

Seu raciocínio está bem fundamentado e você está no caminho certo ao usar subconsultas para resolver o desafio.

É muito comum na programação a possibilidade de explorarmos diferentes soluções para um mesmo problema, com o SQL não seria diferente!

Continue explorando essas possibilidades, isso desenvolve ainda mais as suas habilidades e lógica.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!