代码之家  ›  专栏  ›  技术社区  ›  halocursed

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

  •  2
  • halocursed  · 技术社区  · 17 年前
    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
    

    表 游戏额定值TBLX245V - 游戏机 评级
    寓言 加马迪塔 - 身份证件 ,游戏信息,名称,发布日期

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

    现在,我想提取的是游戏平均得分最高的Tblx245v,但对于从表gamedata中释放日期在过去90天内的游戏… 谢谢你的帮助。

    1 回复  |  直到 17 年前
        1
  •  6
  •   Bill Karwin    17 年前

    以下是我设计该查询的方法:

    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;