seleziona nidificazione per algoritmo popolarità make
-
11-10-2019 - |
Domanda
Sto cercando di scrivere una funzione SQL per fare un algoritmo di popolarità.
Vorrei ordinare "post" per la quantità di commenti a "commenti" con la "post_id" del post, ha aggiunto alla quantità di voti nel "utili" tabella con la "post_id" del post , tutti ordinati per "data" nella tabella "messaggi" (un timestamp).
Non sono sicuro di come fare per fare questo multi-tavolo di ordinamento, quindi sto raggiungendo fuori per una guida!
Grazie in anticipo, Will.
Soluzione
non ho ancora testato, ma potrebbe funzionare:
SELECT `post_id`, COUNT(`post_id`) AS `count` FROM `comments` GROUP BY `post_id`
E inoltre si può aderire con la tabella di messaggi:
SELECT * FROM `posts` LEFT JOIN (SELECT `post_id`, COUNT(`post_id`) AS `count` FROM `comments` GROUP BY `post_id`) AS `p` ON(`post_id`)
Altri suggerimenti
Ho deciso di andare solo in base al conteggio "voto".
SELECT posts.id, posts.date, COUNT(votes.id) AS votePerPost FROM posts,votes WHERE posts.id = votes.post_id GROUP BY posts.id ORDER BY posts.date DESC, votePerPost ASC
perché è un esempio di close-sufficiente. Di quello che stavo cercando.