0

在 mysql 中,我试图获取最近 7 天的数据,所以我尝试使用以下查询

date_sub(curdate(), interval 7 day) <= visited_time访客表中给出日期5/10/2013 to 5/16/2013

date_sub(curdate(), interval 7 day) <= date_entered但这里来自订单表的相同查询给出了日期5/9/2013 to 5/15/2013

今天是 2013 年 5 月 16 日,因此它也应该给出 5/9/2013 to 5/15/2013访客表的最后 7 天结果。

这有什么问题?好心劝告

4

1 回答 1

0

我已关注该帖子并尝试使用数字表格技巧

DROP TABLE IF EXISTS `example`.`numbers`;
CREATE TABLE  `example`.`numbers` (
  `id` int(10) unsigned NOT NULL auto_increment,
   PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

使用以下命令填充表格:INSERT INTO NUMBERS (id) VALUES (NULL)...为您需要的任意数量的值。

然后最后尝试使用带有数字表的左连接进行以下查询。

SELECT  x.ts AS TIMESTAMP
FROM (

SELECT DATE_ADD( CURDATE( ) , INTERVAL n.id -7
DAY ) AS ts
FROM numbers n
WHERE DATE_ADD( CURDATE( ) , INTERVAL n.id -7
DAY ) <= CURDATE( )
)x
LEFT JOIN orders y ON ( y.`date_entered` ) = x.ts
GROUP BY DATE( x.ts ) 
ORDER BY DATE( x.ts ) DESC
于 2013-05-20T05:01:36.030 回答