I would like to receive the sum of all requests of the last 10 days grouped by date per day. If there was no request on a day, the corresponding date should appear with sumrequests = 0.
My current query (today is the date 2020-01-10):
SELECT
  count( 0 ) AS sumrequests,
  cast( requests.created_at AS date ) AS created 
FROM
  requests 
WHERE
  (
    requests.created_at
    BETWEEN ( curdate() - INTERVAL 10 DAY ) 
    AND ( curdate() + INTERVAL 1 DAY )) 
GROUP BY
  cast(requests.created_at AS date)
I then receive the following list:
sumrequests | created
--------------------------
3           | 2020-01-05
100         | 2020-01-08
But it should give back:
sumrequests | created
--------------------------
0           | 2020-01-01
0           | 2020-01-02
0           | 2020-01-03
0           | 2020-01-04
3           | 2020-01-05
0           | 2020-01-06
0           | 2020-01-07
100         | 2020-01-08
0           | 2020-01-09
0           | 2020-01-10
How can I get this without an additional calendar table.
Thanks for help!