2015-09-29 43 views
0

我需要一个查询,这将允许我从MySQL表中选择最后4周的数据值,但输出为从4周前的星期一开始的日期,无论当前的星期。获取最近4周的记录,按星期分组

数据库有一个用户表,一个具有用户ID的FK的活动表。 的activityStats与FK表activityID

查询将被用来创建一个类似于数组:

$array = [ 
    "userid" => "userid", 
    "dateAdded" => "dateAdded", 
    "week1" => $array = [ 
     "monday" => $array = [ 
     "activityid" => "1", 
     "time" => "21", 
     ... 
     ] 
     "tuesday" => $array = [ 
     "activityid" => "2", 
     "time" => "16", 
     ... 
     ] 
     "wednesday" => $array = [ 
     "activityid" => "3", 
     "time" => "16", 
     ... 
     ] 
     ... 
    "week2" => $array = [ 
     "monday" => $array = [ 
     "activityid" => "8", 
     "time" => "21", 
     ... 
     ] 
     "tuesday" => $array = [ 
     "activityid" => "9", 
     "time" => "16", 
     ... 
     ] 
     "wednesday" => $array = [ 
     "activityid" => "10", 
     "time" => "16", 
     ... 
     ] 
     ... 
    ] 
    ... 
]; 

我可以创建多个查询其会做的伎俩,但有可能会得到一个要求10周或52周,单独的查询可能不会削减它。

不知道从哪里开始。

回答

0

假设你的时间戳列被称为timestamp,您可以:

SELECT CONCAT(YEAR(timestamp), '/', WEEK(timestamp)) AS week

,然后检索特定范围,以便按周等