2010-12-20 30 views
0

我正在嘗試編寫一個用於製作流行算法的sql函數。嵌套選擇使流行算法

我想根據帖子的「post_id」的「評論」中的評論數量對「帖子」進行排序,將其添加到「投票」表中的投票數量中,使用「post_id」帖子,所有按「日期」排序在「帖子」表(時間戳)中。

我不知道如何去做這個多表排序,所以我伸出一些指導!

在此先感謝,威爾。

+0

觸摸點擊 - 聽起來很複雜,介意包括您的表格模式? – ajreal 2010-12-20 02:10:58

+0

對不起,你的意思是? – willium 2010-12-20 02:20:12

回答

0

我沒有測試過,但它可能工作:

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

而且還可以與職位表加入吧:

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

hm。似乎沒有正確的效果。我想通過評論+該帖子的投票來排序帖子。 – willium 2010-12-20 03:10:08

+0

標記爲正確,因爲你引導我朝着正確的方向前進。 – willium 2010-12-20 10:32:06

0

我決定基於「票」才行計數。

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 

因爲這是一個足夠接近的例子。我正在尋找的東西。