1
resposta

Aula 3 atividade 5

Olá pessoal,

Gostaria uma ajuda de vocês.

A resolução correta desse exercício:

select 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
where a.nome like '%Santos%' or a.nome like '%Silva%'
group by c.nome

Resultado do select:

Nome                                    Média

Scrum e métodos ágeis | 5.7778

SQL e banco de dados | 6.2857

Minha resposta(antes de ver a resolução) :

select c.nome, avg(n.nota) from nota n 
join resposta r on n.resposta_id = r.id
join exercicio e on r.exercicio_id = e.id 
join secao s on e.secao_id = s.id 
join curso c on s.curso_id = c.id
join matricula m on m.curso_id = c.id 
join aluno a on m.aluno_id = a.id 
where a.nome like '%Silva%' or a.nome like '%Santos%' 
group by c.nome;

Resultado do select:

Nome                                    Média

Scrum e métodos ágeis | 5.7778

SQL e banco de dados | 6.2727

Como vocês podem ver, o resultado final ficou pouquíssimo diferente, por eu ter relacionado a tabela matriculas também no meu comando sql.

Minha pergunta é: Existe alguma técnica que possa me ajudar no momento de juntar(dar um join) as tabelas ?

1 resposta

Ola Leonardo

você precisa do nome da tabela curso e da nota da tabela nota. Então você precisa amarrar essas duas tabelas da forma mais simples. Se você precisasse de mais colunas, você poderia necessitar de mais tabelas e elas deverão ser amarradas corretamente.