mySQL-将日期字段分组为周和总和数据

mySQL-将日期字段分组为周和总和数据,mysql,sql,Mysql,Sql,我目前正在寻找将一些日期分组到各自的周中,同时为每个周总结一个字段(在本例中是“距离”)。除此之外,我还想为查询提供一个日期范围。因此,我有以下SQL: $sql = "SELECT week(lapDate) AS WEEK, sum(distance) AS DISTANCE FROM activity LEFT JOIN lap ON activity.activityID = lap.lapDate AND activity

我目前正在寻找将一些日期分组到各自的周中,同时为每个周总结一个字段(在本例中是“距离”)。除此之外,我还想为查询提供一个日期范围。因此,我有以下SQL:

$sql = "SELECT week(lapDate) AS WEEK, sum(distance) AS DISTANCE
        FROM activity
        LEFT JOIN lap
        ON activity.activityID = lap.lapDate
        AND activity.email = '$email'
        AND lap.lapDate BETWEEN '$fromDate' AND '$toDate'
        GROUP BY WEEK
        ";
没有错误发生,只是返回了null值。有什么建议吗


非常感谢您的帮助。

您正在引用
左侧外部联接的第二个表中的日期。如果没有匹配项,则您将获得
NULL

SELECT week(a.activityID) AS WEEK, sum(distance) AS DISTANCE
FROM activity a LEFT JOIN
     lap
     ON a.activityID = lap.lapDate AND
        a.email = '$email' AND
        lap.lapDate BETWEEN '$fromDate' AND '$toDate'
GROUP BY WEEK;

我觉得很奇怪,一个表中名为
ActivityId
的列与另一个表中名为“date”的字段相匹配。可能您也有错误的联接条件。

可能没有与条件匹配的数据。如果您在中提供数据和表而没有完全定义列(或提供适当的DDL),这将是一件好事。这种问题总是令人沮丧,回答起来确实很奇怪,但我保证这是有效的。两者都是日期格式的,肯定会匹配。