在MySQL中,在一段时间间隔内获取0个计数值
我一直在寻找答案,但我没有解决我的问题。我有两个表,在MySQL中,在一段时间间隔内获取0个计数值,mysql,Mysql,我一直在寻找答案,但我没有解决我的问题。我有两个表,profiles和profiles\u visitors,用于存储第一个的访问者 我想知道用户在过去15天内有多少访问者,因此我写了以下内容: SELECT COUNT(pv.id) AS `count`, DATE(FROM_UNIXTIME(pv.created_at)) AS `date` FROM profiles p LEFT JOIN profiles_visitors pv ON pv.profiles_id=p.id WHERE
profiles
和profiles\u visitors
,用于存储第一个的访问者
我想知道用户在过去15天内有多少访问者,因此我写了以下内容:
SELECT COUNT(pv.id) AS `count`, DATE(FROM_UNIXTIME(pv.created_at)) AS `date`
FROM profiles p
LEFT JOIN profiles_visitors pv ON pv.profiles_id=p.id
WHERE p.users_id='50' AND pv.created_at >= (CURDATE() - INTERVAL 15 day)
GROUP BY DATE(FROM_UNIXTIME(pv.created_at))
查询结果:
+-------+-------------------+
| count | date |
+-------+-------------------+
| 2 | 2012-10-26 |
+-------+-------------------+
| 3 | 2012-10-29 |
+-------+-------------------+
预期结果:
+-------+-------------------+
| count | date |
+-------+-------------------+
| 0 | 2012-10-15 |
+-------+-------------------+
.......... 0s here ..........
+-------+-------------------+
| 0 | 2012-10-25 |
+-------+-------------------+
| 2 | 2012-10-26 |
+-------+-------------------+
| 0 | 2012-10-27 |
+-------+-------------------+
| 0 | 2012-10-28 |
+-------+-------------------+
| 3 | 2012-10-29 |
+-------+-------------------+
| 0 | 2012-10-30 |
+-------+-------------------+
提前感谢。使用
配置文件
行数,而不是配置文件访问者
(因为如果没有访问,则配置文件访问者表中没有行),如下所示:
此外,如果需要,还可以使用DATEDIFF
函数作为:
DATEDIFF(CURDATE(), pv.created_at) <=15
DATEDIFF(CURDATE(),pv.created_at)谢谢,但这给了我0个结果。问题是哪里没有访问,所以没有可以返回的行。@udexter:更新了答案。请检查。我已经尝试过了,选择给我相同的结果。使用您的DATEDIFF会给我0个结果:(@udexter:COUNT(p.id)
你试过了吗?
DATEDIFF(CURDATE(), pv.created_at) <=15