按标准匹配日期

时间:2011-07-28 21:48:06

标签: php mysql group-by sql-order-by subquery

我有以下查询,以降序输出过去一周收到最多收藏数的用户:

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

我希望能够扩展此列表以包含所有用户,而不仅仅是过去一周,但仍然按照相同的标准(他们在过去一周获得的收藏数量而不是数量他们总共得到了什么。 我试图在选择中包含一个子查询,但没有任何运气。

提前感谢您提供任何帮助

1 个答案:

答案 0 :(得分:0)

也许我错过了什么,但只是删除了这一行:

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

你将拥有“所有用户” - 仍然按topFaves排序......

此外,如果您想列出所有人(不仅仅是10个人),您还需要删除:

LIMIT 10