2011-07-28 26 views
0

该日期我有以下查询,其输出降序收到在过去一周的收藏最多的用户:为了通过符合标准

SELECT COUNT(faves.user_id) AS topFaves, faves.created_on, user_name 
FROM users 
INNER JOIN faves ON faves.user_id= users.id 
WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= created_on 
GROUP BY id ORDER BY topFaves DESC 

我希望能够延长这一名单以包含所有用户,而不仅仅是过去一周,但仍然按照相同的标准(他们在过去一周获得的收藏数量而不是他们拥有的发布数量)对他们进行排序。 我试图在select中包含一个子查询,但没有任何运气。

预先感谢任何帮助

+0

做查询工作?请详细说明 – diEcho

回答

0

也许我失去了一些东西,但只是删除这一行:

WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= created_on 

而且你有“一切为用户” - 由topFaves仍在整理.. 。

此外,如果你要列出每个人(不只是10人),你将需要删除:以上

LIMIT 10 
+0

谢谢,但我想列出所有用户,但仍然按照他们在过去一周内收到的发布数量排序,而不是他们总共发布的发布数量。 – user1567

+0

@Jack - ok, created_on'在你的用户表或你的'faves'表中?在你的WHERE子句中,你没有指定。这可能是你的答案。 – Shackrock

+0

created_on字段位于faves表中。那么我应该如何改变WHERE子句呢? – user1567