【发布时间】:2016-10-11 16:25:27
【问题描述】:
即使计数为null,结果也应返回包含日期的一行。
SELECT DATE_FORMAT(created_date, '%Y-%m') AS date, COUNT(*) AS total
FROM mytable
WHERE created_date BETWEEN :startDate AND :endDate
AND condition = :condition
GROUP BY DATE_FORMAT(created_date, '%Y-%m')
ORDER BY created_date ASC
我看到我应该使用LEFT JOIN 和IFNULL,但我尝试了没有好的结果。
想要的结果:
array(1) {
[0]=> {
["date"]=>
string(7) "2016-01"
["total"]=>
string(1) "0"
}
[1]=> {
["date"]=>
string(7) "2016-02"
["total"]=>
string(4) "9492"
}
[2]=> {
["date"]=>
string(7) "2016-03"
["total"]=>
string(1) "0"
}
}
PS:我正在使用 MySQL
【问题讨论】:
-
您正在使用哪个
DBMS。厌倦了写这个声明:/ -
当你说结果应该返回一行时,这是预期的还是期望的结果?
-
@Prdp 抱歉,已编辑
-
@mchev - 实际上你应该标记。我已经为你做了。请记住这一点以备将来的问题
标签: mysql sql count sql-order-by ifnull