2
respostas

aluno_ id é um campo não uma tabela é possivel realizar um join de um campo para tabela porque?

select c. nome , AVG (n.nota) from nota n inner join resposta r on r.id= n.resposta_id inner join exercicio e on e.id= r.exercicio_id inner join secao s on s.id = e.secao_id inner join curso c on c.id = s.curso_id inner join aluno a on a.id = r.aluno_id ( aluno a é um campo) where a.nome like '%Santos%' OR a.nome like '%Silva%' group by c.nome

2 respostas

Boa noite, Adriano.

Não entendi direito sua questão, poderia postar a estrutura das suas tabelas para que eu possa te ajudar?

OBS: O seu primeiro campo do select está com um espaço entre o alias da tabela e o nome da coluna. (Correto seria c.nome, está escrito c. nome)

Na sua query, a coluna "aluno_id" faz parte da tabela de "resposta". Esta tabela está com o alias (apelido) "r".

Os vinculos estão desta forma:

A tabela de resposta (r) foi vinculada com a tabela notas (n) A tabela de exercicio (e) foi vinculada com a tabela resposta (r) A tabela de exericios (e) foi vinculada com a tabela secao (s) A tabela de secao (s) foi vinculada com a tabela curso (c) A tabela de aluno (a) foi vinculada com a tabela de resposta (r)

Você pode fazer um vinculo direto entre elas para testar, algo como

select * from resposta r inner join aluno a on a.id = r.aluno.id

Antes e depois do INNER JOIN eu tenho tabelas com alias. Depois do ON eu tenho os campos das duas tabelas usadas no join, estes campos são aqueles que tem as informações que são comuns a ambas as tabelas.