Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Porque na última linha do join, deve ser feita uma ligação ao primeiro join feito?

Sempre fico com a mesma dúvida, porque devo sempre relacionar o ultimo join ao primeiro que foi feito e não com outra coluna? Infelizmente ainda tenho essa dúvida. Se puderem me ajudar, agradeço.

Select 
    a.nome, c.nome, AVG(n.nota)
From 
    nota n
join resposta r on r.id = n.resposta_id
Join exercicio e on e.id = r.exercicio_id
join secao s on s.id = e.secao_id
join curso c on c.id = s.curso_id
join aluno a on a.id = r.aluno_id     
Group By a.nome, c.nome
Having AVG(n.nota) < 5
1 resposta
solução!

Oi Gustavo tudo bem? Se entendi bem sua pergunta, isso se dá ao fato que você está comparando a o id do aluno com o id do aluno que deu a resposta.

Você precisa fazer essa relação, se não, você não está indicando qual aluno respondeu qual dúvida, isso pode trazer resultados complemente diferentes do que a proposta pede.

O relacionamento dos joins precisa atender alguma relação, se não o join não faz sentido. Neste caso esta relação existe entre todos os pontos, inclusive o id do aluno com seu próprio id na resposta.

Acho que a ordem não importa tanto nesse caso. Já testou alterar a ordem das linhas? O resultado foi outro?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software