Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DeMo

Access

Recommended Posts

Galera, já me matei tentando resolver esse problema e não consegui, preciso de uma ajudinha com uma query SQL, vou tentar explicar minha situação.

 

Fiz um banco de dados (Access) simples para um evento aqui da faculdade. A estrutura é basicamente essa:

 

Artigos             Avaliadores-----------         -----------titulo              codigoavaliador1          nomeavaliador2avaliador3

São duas tabelas, em uma eu guardo os artigos que foram inscritos no evento e na outra guardo os nomes dos avaliadores, que vão dar as notas nos artigos. Tem mais campos nas tabelas, mas pro que eu preciso e pra facilitar pra vocês também.. só esses aí já bastam.

 

Bom, o sistema funciona assim: Eu linko os avaliadores aos artigos para depois eles entrarem numa área de avaliação e verem quais artigos eles tem que ler e dar a nota.

 

Essa linkagem é feita pegando o valor do campo codigo (tabela Avaliadores) e gravando ele nos campos avaliador1, avaliador2 ou avaliador3 (da tabela Artigos). São 3 campos pois cada artigo pode ter até 3 avaliadores diferentes.

 

O que eu preciso agora é criar uma página que liste todos os artigos e seus respectivos avaliadores. Basicamente é uma tabela com 4 colunas: título do artigo, nome do avaliador 1, nome do avaliador 2 e nome do avaliador 3.

 

Eu até já fiz essa página mas não consegui montar uma query SQL que me retornasse as 4 informações ao mesmo tempo. Ficou muito devagar porque pra cada artigo eu executo 3 querys (pra pegar cada avaliador), se você considerar que são 200 artigos... isso dá 600 querys no total só pra pegar os nomes dos avaliadores.

 

Pra dar uma idéia, eu estou paginando de 10 em 10 registros. Pra ele fazer a tabela com esses 10 registros leva em média 15 segundos.

 

Então meu pedido é esse, eu preciso de uma query que me retorne o título do artigo e o nome dos 3 avaliadores, tudo de uma vez só. Não sei se é possível fazer isso ou não, mas conto com a ajuda de vocês, já tentei diversas coisas diferentes e até agora nada, não consegui!!

 

A lógica do negócio que está confundindo minha cabeça é que o campo nome (da tabela Avaliadores) é um só!! E no entanto eu preciso retornar ele 3 vezes pra poder ter o nome dos 3 avaliadores.

 

Agradeço a quem puder ajudar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia!Você precisa abrir uma referência à tabela de avaliadores para cada campo de avaliador que você quer procucar...Assim, o sql vai ficar parecido com:select *from artigos a, avaliadores b, avaliadores c, avaliadores dwhere (a.avaliador1 = b.codigo) and (a.avaliador2 = c.codigo) and (a.avaliador2 = d.codigo)Espero que funcione.[]sIdamila

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.