Ir para conteúdo
Fórum Script Brasil
  • 0

Select impossível?


fertel

Pergunta

Estou com um problemão aqui, já pesquisei, queimei a mufa e não consegui uma solução:

Tenho duas tabelas, como vou ilustrar a seguir no exemplo:

Tabela: artigos

artigo_id

artigo_texto

artigo_categoria

Neste sistema o usuário pode dar notas de 0 a 10 para cada artigo, portanto uma segunda tabela foi criada:

Tabela: votos

artigo_id

votante_id

voto

Problema: Eu preciso criar uma página que liste os artigos mais votados (com mais quantidades de votos, ou seja, mais registros na tabela "votos") e outra página que mostre os artigos mais bem votados (ou seja, ordenar aqueles artigos que somando todos os votos tenha a maior nota). Estando as duas em tabelas diferentes eu não faço a menor idéia de como dar um SELECT COUNT nem como ORDENAR estas pesquisas.

Será que alguém que já precisou fazer tem alguma solução?

Agradeço desde já.

Edit: Eu estava lendo algo em outro fórum sobre criação de uma tabela temporária na memória do servidor. Será que de alguma maneira isso me ajudaria, servindo como um "índice" temporário?

Ex.: CREATE TEMPORARY TABLE <nome_da_tabela> (<campos>) ENGINE=MEMORY;

Algém tem mais informações de como usar este recurso?

Editado por fertel
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Oi,'fertel'!

Você já ouviu falar de JOIN?

Você informou que possui uma tabela [artigos] que tem uma relação de um "artigo" para muitos "votos" com a tabela [votos]. Então, para resolver esta equação use

SELECT a.artigo_id, count(v.artigo_id) AS MAIS_VOTADO, MAX(v.Voto) AS MAIOR_VOTO
FROM Artigo a 
INNER JOIN Voto v ON a.artigo_id = v.artigo_id
group by a.artigo_id;

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...