在mysql中,我创建了一个查询,希望在其中获取每个日期的最后一个月的数据,如果没有找到特定日期的记录,那么它应该显示0。
我的mysql查询是
选择SUM(testviewaudit.action=1)AS视图,日期(testviewaudit.datetime)来自上的testviewaudit内部联接tmteststestviewaudit.testid=tmtests.tsid,其中DATE(testviewaudit.datetime)BETWEEN NOW()-INTERVAL 30 DAY AND NO()分组依据DATE(testviewaudit.datetime)按DATE(testviewaudit.DATE time)排序asc;
我也用过这个,但没有成功
选择ifnull(SUM(testviewaudit.action=1),0)AS视图,日期(testviewaudit.datetime)来自上的testviewaudit内部联接tmteststestviewaudit.testid=tmtests.tsid,其中DATE(testviewaudit.datetime)BETWEEN NOW()-INTERVAL 30 DAY AND NO()分组依据DATE(testviewaudit.datetime)按DATE(testviewaudit.DATE time)排序asc;
仍然得到相同的结果
试试这个:
select if(is null(testviewaudit.action), 0 , sum(testviewaudit.action=1)) AS view,
DATE(testviewaudit.datetime) from testviewaudit inner join tmtests on testviewaudit.testid=tmtests.tsid
where DATE(testviewaudit.datetime) BETWEEN NOW() - INTERVAL 30 DAY AND NOW() group by DATE(testviewaudit.datetime) order by DATE(testviewaudit.datetime) asc;
尝试将整个查询放入IFNULL中。
SELECT IFNULL( (SELECT field1 FROM table WHERE id = 1 ) ,'not found');