Pregunta

Estoy intentando escribir una función de SQL para realizar un algoritmo de popularidad.

Me gustaría ordenar "mensajes" por la cantidad de comentarios en "comentarios" con el "post_id" del post, añadido a la cantidad de votos en la tabla "útiles" con el "post_id" del puesto , todas clasificado por "fecha" en la tabla "mensajes" (una marca de tiempo).

No estoy seguro de cómo hacer para hacer este multi-mesa de selección, así que estoy llegando a una cierta dirección!

Gracias de antemano, Will.

¿Fue útil?

Solución

No he probado, pero es posible que funcione:

SELECT `post_id`, COUNT(`post_id`) AS `count` FROM `comments` GROUP BY `post_id`

Y, además, puede unirse con la tabla de mensajes:

SELECT * FROM `posts` LEFT JOIN (SELECT `post_id`, COUNT(`post_id`) AS `count` FROM `comments` GROUP BY `post_id`) AS `p` ON(`post_id`)

Otros consejos

decidí ir simplemente en base al recuento "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

porque es un ejemplo de cerca lo suficiente. De lo que estaba buscando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top