Datetime 从区域中日期为90天前和现在的表中选择行。?

Datetime 从区域中日期为90天前和现在的表中选择行。?,datetime,mysql,Datetime,Mysql,表配子STBLX245V-配子ID,评级 Rablegamedata-id,gameinfo,名称,发布日期 这是我当前用于从两个表gamedata和gameratingstblx245v中提取数据的查询。。。。我在这里做的是从gameratingstblx245v表中按其平均评级的降序获取所有评级的平均值,并且我还从gamedata表中提取与所选gameid相对应的相关信息… 现在,我想提取的是来自game_ratingstblx245v的最高平均评级,但对于表gamedata中的field

配子STBLX245V-配子ID,评级
Rablegamedata-id,gameinfo,名称,发布日期

这是我当前用于从两个表gamedata和gameratingstblx245v中提取数据的查询。。。。我在这里做的是从gameratingstblx245v表中按其平均评级的降序获取所有评级的平均值,并且我还从gamedata表中提取与所选gameid相对应的相关信息…

现在,我想提取的是来自game_ratingstblx245v的最高平均评级,但对于表gamedata中的field releasedate在过去90天内的游戏。。。
非常感谢您的帮助。谢谢。

以下是我如何设计该查询:

SELECT gameratingstblx245v.gameid,avg( gameratingstblx245v.rating ) as avgrating, count(gameratingstblx245v.rating) as count,gamedata.name ,gamedata.gameinfo
FROM gameratingstblx245v 
LEFT JOIN gamedata ON gamedata.id = gameratingstblx245v.game_id 
WHERE gameratingstblx245v.game_id=gameratingstblx245v.game_id 
GROUP BY gameid 
ORDER BY avg( gameratingstblx245v.rating ) DESC LIMIT 0,8

是的,很抱歉,我一开始忘记了
INTERVAL
关键字。我测试了这个查询,发现了我的错误。您也可以使用特定于MySQL的函数,如
DATEDIFF()
,但
INTERVAL
语法的作用相同,它是更标准的SQL。
SELECT d.id, d.name, d.gameinfo,
  AVG(r.rating) AS avgrating, COUNT(r.rating) AS count
FROM gamedata d
LEFT JOIN gameratingstblx245v r ON (d.id = r.game_id)
WHERE d.releasedate BETWEEN NOW() - INTERVAL 90 DAY AND NOW()
GROUP BY d.id 
ORDER BY avgrating DESC LIMIT 0,8;