Unfortunately generating sequences in MySQL is not quite as easy as it is in MSSQL.
However, I adapted a solution by
logan5 at SO[
^]
This is my interpretation of your table:
CREATE TABLE your_table
(
datecol DATE,
id INT,
namecol VARCHAR(255)
);
INSERT INTO your_table (datecol, id, namecol) VALUES('2015/09/01',1,'abc1');
INSERT INTO your_table (datecol, id, namecol) VALUES('2015/09/02',2,'abc2');
INSERT INTO your_table (datecol, id, namecol) VALUES('2015/09/04',3,'abc3');
INSERT INTO your_table (datecol, id, namecol) VALUES('2015/09/06',4,'abc4');
I created a "working" table
CREATE TABLE num (i int);
INSERT INTO num (i) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);
Which I then used in this query:
select adddate('2015-09-01', numlist.id) as `date` , y.id, y.namecol
from
(SELECT n1.i + n10.i*10 + n100.i*100 AS id
FROM num n1 cross join num as n10 cross join num as n100) as numlist
LEFT OUTER JOIN your_table y on y.datecol = adddate('2015-09-01', numlist.id)
where adddate('2015-09-01', numlist.id) <= '2015-09-30';
It produces the results you are after.
If you are going to do this often it is probably worth setting up a permanent table of dates