不知道我是否通过将续课问题作为新问题发布来打破通信指南。如果是这样。对不起!!
现在,使用,
SELECT count(alertid) as cnt,date(alertdate) as alertDate
FROM alertmaster a,subscriptionmaster s
WHERE alertDate BETWEEN DATE_SUB(CURDATE(),INTERVAL 7 DAY) AND CURDATE()
GROUP BY date(alertDate),s.subId
ORDER BY a.alertDate DESC;
生产:
13,'2011-04-08'
13,'2011-04-08'
13,'2011-04-08'
14,'2011-04-07'
13,'2011-04-07'
我想要的地方是:
39,'2011-04-08'
27,'2011-04-07'
如何实现这一目标?
答案 0 :(得分:6)
每个日期获得多行的原因是因为您有GROUP BY date(alertDate),s.subId
。只需将GROUP BY
更改为
GROUP BY date(alertDate)
如果您实际上不想为每个s.subId,date
组合使用单独的组。
您发布的代码也缺少JOIN
条件。这是使用显式(ANSI 92)JOIN
语法的首选原因之一。