Есть запрос:
SELECT `date`, SUM(`visits`) as `sum`, DATE_FORMAT(FROM_UNIXTIME(`date`), '%M %Y') as `period` FROM `statistics` WHERE `е_id` = 10 GROUP BY `period` ORDER BY `date` ASC
Получаем следующий результат:
date sum period
1453323600 7 January 2016
1456693200 4 February 2016
1456779600 9 March 2016
1461099600 11 April 2016
1464728400 12 June 2016
1468443600 5 July 2016
date - это UNIX_TIMESTAMP(CURDATE()), т.е. 1 день - 1 запись
Здесь нету информации за май (потому что визитов попросту не было, а значит и статистика не записалась). Ведь не очень хорошо делать бесполезную запись в БД, если там все равно по нулям, к тому же если пишет триггер БД?
Можно ли как то нативным способом MYSQL получить подобную выборку, только чтобы было так?
date sum period
1453323600 7 January 2016
1456693200 4 February 2016
1456779600 9 March 2016
1461099600 11 April 2016
1464123600 0 May 2016 // Информация за май
1464728400 12 June 2016
1468443600 5 July 2016
То есть, чтобы даже если в таблице отсутствует информация за определенный месяц, после выборке она у нас была в виде заполненных нулей. Это нужно для того, чтобы отобразить график в
c3js, чтобы было наглядно видно, в какой месяц визиты отсутствуют вообще (возможно это можно сделать средствами c3js?). То же самое нужно при выборке по дням, сейчас приходится заполнять эту информацию на стороне сайта, что как то не очень удобно.