2011-03-31 5 views
1

J'ai deux tables - votes et blotes. Les votes ont un nom, un temps et un paramètre J'aime/N'aime pas en tant que colonnes de table. Les Blotes sont juste des tags pour lesquels les gens ont voté. Ils ont un score (aime moins les dégoûts) et number_of_votes comme champs.Requête SQL pour trouver les tendances

Je mis en place une requête pour trouver blotes - de tendance

SELECT name, number_of_votes, score FROM `vote` 
INNER JOIN `blote` ON vote.name=blote.name 
WHERE UNIX_TIMESTAMP(now()) - `time` < 60*60*24*7 
GROUP BY vote.name 
ORDER BY blote.number_of_votes DESC 
LIMIT 25 

qui est apparemment faux. Il trouve ces Blotes qui ont plus de voix et au moins un vote la semaine dernière. Ce que je veux, c'est trouver ceux qui ont le plus de votes la semaine dernière. J'espère que cela a du sens. Je vous remercie.

Répondre

1

Parfois, cela aide beaucoup d'écrire une question. Je savais que je devais utiliser count(), et quelques instants après avoir soumis une question, j'ai vu comment faire.

Ici, il est:

SELECT count(time), blote.name, number_of_votes, score FROM `vote` 
INNER JOIN `blote` ON vote.name=blote.name 
WHERE UNIX_TIMESTAMP(now()) - `time` < 60*60*24*7 
GROUP BY vote.name 
ORDER BY count(time) DESC 
LIMIT 25 

un moyen d'améliorer cette requête?

Questions connexes