वर्चुअल टेबल बनाने के लिए आप एक ट्रिक का उपयोग कर सकते हैं, जिसमें आपकी जरूरत की सभी तारीखें किसी अन्य टेबल के साथ हों (aux
बदलें) आपके डीबी में किसी भी तालिका के साथ कम से कम 31 रिकॉर्ड किए गए):
SELECT CONVERT(@d := DATE_ADD(@d, INTERVAL 1 DAY), DATE) AS `d`
FROM
`aux`,
(SELECT @d := DATE_SUB(CONVERT(DATE_FORMAT(NOW(), '%Y-%m-01'), DATETIME), INTERVAL 1 DAY)) `x`
WHERE
@d < DATE_SUB(NOW(), INTERVAL 1 DAY)
LIMIT
31
और फिर उस पर अपनी तालिका में शामिल हों:
SELECT
`aux`.`d` as `Date`,
SUM(IFNULL(`Clicks`, 0))AS `Clicks`,
DAY(LAST_DAY(NOW())) AS `Monthdays`
FROM (
SELECT CONVERT(@d := DATE_ADD(@d, INTERVAL 1 DAY), DATE) AS `d`
FROM
`aux`,
(SELECT @d := DATE_SUB(CONVERT(DATE_FORMAT(NOW(), '%Y-%m-01'), DATETIME), INTERVAL 1 DAY)) `x`
WHERE
@d < DATE_SUB(NOW(), INTERVAL 1 DAY)
LIMIT
31
) aux
LEFT JOIN
myTbl
ON `Date` = `aux`.`d`
GROUP BY `aux`.`d`