我使用以下内容显示过去7天内添加的产品数量...即使COUNT = 0,我能以某种方式定制查询以显示过去7天的所有内容吗?
按原样查询:
SELECT DAYNAME(dateadded) DAY, COUNT(*) COUNT
FROM `products`
WHERE (`dateadded` BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE() && site_url = 'mysite.com')
GROUP BY DAY(dateadded)
答案 0 :(得分:1)
添加一个包含日期的表(日期查找表),然后:
SELECT DAYNAME(d.FullDate) DAY, COUNT(*) COUNT
FROM dates d
LEFT OUTER JOIN products p ON d.FullDate = DATE(p.dateadded)
AND p.site_url = 'mysite.com'
WHERE d.FullDate BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE()
GROUP BY d.FullDate
这需要一点点存储空间,是的,但它会使这样的查询变得更容易。
或者,您可以创建一个存储过程,该过程循环显示7天前和今天之间的日期,并为每个日期返回一行。