MySQL在左外部联接上获取重复行
我正试图从我的数据库中获取每天的事件计数,包括没有数据的天数,我创建了一个日历表,并尝试了我找到的所有建议,但出于某种原因,我每天的事件数一直是原来的两倍。下面是我一直在玩的问题MySQL在左外部联接上获取重复行,mysql,Mysql,我正试图从我的数据库中获取每天的事件计数,包括没有数据的天数,我创建了一个日历表,并尝试了我找到的所有建议,但出于某种原因,我每天的事件数一直是原来的两倍。下面是我一直在玩的问题 SELECT DAY(c.datefield) as date, COUNT(s.timestamp) as count FROM calendar c LEFT OUTER JOIN Seizures s ON (DATE(s.timestamp) = c.datefield) WHERE c.datefield
SELECT DAY(c.datefield) as date, COUNT(s.timestamp) as count
FROM calendar c
LEFT OUTER JOIN Seizures s ON (DATE(s.timestamp) = c.datefield)
WHERE c.datefield LIKE '2012-11-%'
GROUP BY c.datefield
如果有人能帮我避免我的头撞到桌子上,我将不胜感激
注:
如果我在没有尝试使用联接来填充没有数据的日期的情况下执行直截了当的计数查询,我会得到正确的条目计数。只有在尝试加入时,计数才会由于某种原因加倍。结果是我的日历表的所有条目都以某种方式重复了。这就是导致计数加倍的原因,@PinnyM让我找到了这个解决方案
Thanx获得帮助。基于这些结果,您的
日历表似乎包含重复的行。您可以通过运行以下命令进行检查:
SELECT datefield, COUNT(*) FROM calendar
WHERE datefield LIKE '2012-11-%'
GROUP BY datefield
HAVING COUNT(*) > 1
如果返回任何行,然后,在查询按预期工作之前,您需要处理重复项。您是否尝试选择DISTINCT?您能否验证日历表中本月只有30条记录?向我们显示扣押
和日历
的模式。是扣押。时间戳是时间戳还是日期时间?因此SELECT*FROM calendar c,其中c.datefield如'2012-11-%'
提供30行?