我有一张桌子: id,datetime,event
我也有桌面日期: 日期(Y-m-d格式)
问题是有些日子没有任何事件,我希望他们显示0(或null)
SELECT DATE_FORMAT(table.timestamp, '%Y-%m-%d') ydm, count(table.fkUID) FROM `table` where table.fkUID=$var group by ydm;
是否有某种方法可以加入或使用条件语句来显示结果:
date|count
----------
2010-05-23| 5
2010-05-24| 0 <--- this line just doesn't exist in my query.
2010-05-26| 3
答案 0 :(得分:2)
select d.date,count(e.timestamp)
from dates d
left join events e on d.date=DATE_FORMAT(e.timestamp,'%Y-%m-%d')
group by d.date;
我没有测试环境,我不确定我是否清楚这个问题,但这是我的猜测。
答案 1 :(得分:0)
接受的智慧似乎是你必须创建一个包含你感兴趣的所有日期列表的表,然后用你在那里的视图进行外连接。很糟糕,我知道。