我有以下表格:
table: users
id,
companyid,
name,
phone,
date
和
table: numbers
id
在桌面用户上,我有以下1条记录:
1, 22, 'John', '2123333223', '7/19/2015 10:02:19 AM'
并且在表号上我有这个:
1,
2,
3,
etc.. until 30
我正在尝试运行一个连接两个表的查询,它将为我提供以下内容:
0, Jul 15
0, Jul 16
0, Jul 17
0, Jul 18
1, Jul 19
0, Jul 20
0, Jul 21
我创建了以下查询,虽然它会给我我想要的东西但是奇怪的是:
SELECT
COUNT(v.id),
date_format(x.dt, '%b %e') as cdate
FROM (SELECT DATE_SUB(CURRENT_DATE, INTERVAL (n.id - 1) DAY) AS dt
FROM `numbers` n
WHERE n.id <= 7 ) x
LEFT JOIN users v ON DATE(FROM_UNIXTIME(v.date)) = DATE(x.dt)
AND v.companyid=22
GROUP BY x.dt
ORDER BY x.dt;
以上查询给我这个:
0, Jul 15
0, Jul 16
0, Jul 17
0, Jul 18
0, Jul 19
0, Jul 20
0, Jul 21
它不计算7月19日的1条记录。有谁知道我做错了什么。在上面的例子中,我硬编码了我的日期范围以检索过去7天但最终我需要做这样的事情:
users.date between @from_date and @to_date;
因为我的存储过程动态获取日期范围。我也试图弄清楚如何在我的查询中包含。我在stackoverflow中阅读了几篇不同的文章,这是我最接近它的工作。任何帮助将非常感谢它非常感谢。