2009-11-12 5 views
0

J'ai donc construit un système de vote pour un système de courrier personnalisé que j'ai écrit.MySQL Select Statement - Deux tables, trier une table par le nombre d'autres tables

Je veux être en mesure de trier par ordre « le plus voté », « Le plus aimé », etc.

J'ai deux tables.

Entrée: ID, Titre, Post

Vote: ID, EntryID, Résultat

Je veux être en mesure d'interroger la table de vote pour chaque entrée et de voir combien il y de vote sont, et puis trier l'entrée est de combien de votes chaque table a eu. J'ai dérangé avec des jointures, etc. et ne peux pas sembler comprendre. Aucune suggestion?

Répondre

2

Vous voulez faire une jointure et le groupe par les éléments d'entrée, puis utilisez les agrégats comme le nombre et la somme pour obtenir le nombre de voix et la somme des votes:

select e.ID, e.Title, e.Post, count(*) as Votes, sum(Result) as Result 
from Entry e 
inner join Vote v on v.EntryId = e.Id 
group by e.ID, e.Title, e.Post 
order by 4 desc