Mysql 下面的SQL查询只返回可用月份的结果集,如果数据不存在,如何获取所有月份?

Mysql 下面的SQL查询只返回可用月份的结果集,如果数据不存在,如何获取所有月份?,mysql,Mysql,下面的查询只提供可用月份的结果集,如果数据不存在,如何获取所有月份的结果集 例如:- 2013年4月和2013年5月有值,但2013年6月没有值如何在结果集中得到2013年6月,因为总计为0 SELECT CONCAT(substr(MonthName(fileddate) , 1, 3) , "-", Year(fileddate)) AS MONTH, count(*) FROM carstore WHERE store=20 AND (soldstate = 2

下面的查询只提供可用月份的结果集,如果数据不存在,如何获取所有月份的结果集

例如:- 2013年4月和2013年5月有值,但2013年6月没有值如何在结果集中得到2013年6月,因为总计为0

SELECT CONCAT(substr(MonthName(fileddate) , 1, 3) , "-", Year(fileddate)) AS MONTH,
       count(*)
FROM carstore
WHERE store=20
  AND (soldstate = 2
       OR soldstate = 3)
  AND cartype LIKE '%Toyoto%'
  AND fileddate BETWEEN DATE('2013-04-07') AND DATE('2014-04-30')
GROUP BY MONTH
ORDER BY Year(fileddate),
         MONTH(fileddate) ;


+----------+----------+
| Month    | count(*) |
+----------+----------+
| Apr-2013 |        2 |
| May-2013 |        2 |
| Jul-2013 |       14 |
| Aug-2013 |        3 |
| Sep-2013 |        2 |
| Nov-2013 |        4 |
| Dec-2013 |       19 |
| Jan-2014 |       61 |
| Feb-2014 |       21 |
| Apr-2014 |        3 |
+----------+----------+

感谢正确的形成。考虑在演示层/应用层代码中处理数据显示的问题,假设你有这个问题(例如,一个简单的PHP循环作用于有序数组)。另外,请参阅日期格式您可以发布您的表结构吗?您需要创建一个月表并与carstore进行左连接。实际上carstore是一个单表,如何处理左外连接