如何从mysql详细信息中获取最近7天的数据

时间:2018-12-12 08:22:22

标签: php mysql

实际上,我有一个名称为posts的表和另一个名称为newscount的表,在posts表中有四个列id,title,details,postingDate 在newscount表中有三列,分别是id,postid,count, 在newscount表中,postid是posts表ID的id,我已经将数据保存在posts表中,而且我在newscount表中也有数据,例如-在posts表中我有

id title details postingDate
 1,title1,details1,somedate1 
 2,title2,details2,somedate2 
 3,title3,details3,somedate3 

在newscount表中,我有

id=1,postid=1,count=6 

id=2,postid=2,count=5 

id=3,postid=3,count=7

我想从帖子表中选择具有最大计数的最后两个数据,就像我选择的那样,它应该显示类似newscount.id = 3,posts.id = 3的结果,其最大计数为7并且newcount.id = 1 ,posts.id = 1及其详细信息 我已经尝试过了,但是它只显示了postid 3detials而不是最后两个

SELECT * FROM (SELECT newscount.postId, newscount.count from newscount WHERE newscount.count = (SELECT max(count) FROM newscount ORDER BY id LIMIT 2) ) tempcounts INNER JOIN posts ON posts.id = tempcounts.postId WHERE posts.isActive=1 AND posts.postingDate >= curdate() - INTERVAL DAYOFWEEK(curdate())+6 DAY AND posts.postingDate < curdate() - INTERVAL DAYOFWEEK(curdate())-1 DAY  ORDER BY posts.postingDate DESC limit 2

1 个答案:

答案 0 :(得分:0)

我无法运行您的查询,因为您没有提供数据库的完整表结构,但是您至少有两项可以使它们正确: 首先:

您有此查询,但它不返回两个参数(除非您有多个具有最大值的行)

HCRYPTKEY

使用以下代码代替它:

(SELECT max(count) FROM newscount ORDER BY id LIMIT 2)

第二个:如果您希望从where子句的子查询中获得1行以上,则应使用(SELECT count FROM newscount ORDER BY count DESC LIMIT 2) 而不是in操作数