gpt4 book ai didi

php - SQL 列出最喜欢的游戏数据库

转载 作者:行者123 更新时间:2023-11-29 02:07:11 25 4
gpt4 key购买 nike

所以我网站的主页显示了 PMP 的应用程序。用户可以用“喜欢”、“不喜欢”或“中立/无”来评价这些应用(默认情况下,每个应用都被评为中立/无。)

在主页上,我想按最高差异列出游戏(因此需要总喜欢和不喜欢然后将它们加在一起。)我很难制作 SQL 语句来正确执行此操作。

我的表结构是这样的:

appinfo:   id;   name;   genre;   ...

appinfo basically holds all the metadata for the app. Nothing about the rating.

Next, I have the apprating table:

apprating:   username;   app_id;   rating;

This is where all the ratings are stored. Ratings are stored as a -1 (Dislike), 0 (Neutral/None), and 1 (Like). I was hoping with this structure it would be easier to setup the whole statement. Can anyone help me out with writing one? I ended up writing a ridiculously long one that doesn't sort properly or display the rating number.

SELECT appinfo.title, appinfo.description, appinfo.username, appinfo.genre 
FROM appinfo
LEFT JOIN appratings ON appinfo.id=appratings.app_id
GROUP BY appinfo.id
ORDER BY SUM(appratings.rating) DESC

非常感谢您通读这篇文章,只要一条 SQL 语句和对我邪恶的 SQL 方式的更正就很好了!

更新:

所以在有评级系统之前,我会有我的 SELECT 语句,然后在 PHP 中我会 mysql_fetch_array,然后遍历并回显它们的细节,有效地让我做一些事情,比如:

...
<p class="description"><?php echo $gameinfo['description']; ?></p>
...

它会抓取它所在的游戏的描述并回显它。现在,描述仍然有效,但由于我现在有一个奇怪的系统,涉及将 SUM 与我的喜欢/不喜欢的和 appinfo.id 和 apprating.app_id 的 JOIN 语句一起使用,我现在遇到问题

  1. 回显当前游戏的 ID,(回显 $gameinfo['id'] 不会回显任何内容。)
  2. 我怎样才能得到喜欢/不喜欢的 SUM 并回应它?

更新 2

SQL 语句允许我编写 echo $gameinfo['totalscore'] 来获取喜欢/不喜欢的差异,我只需将 appinfo.id 添加到选择能够回应 ID。

最佳答案

您的 GROUP BY 子句需要包含 SELECT 列表中未以某种方式聚合的所有列。您可能碰巧知道特定应用程序的描述、标题和其他详细信息不会更改,但数据库引擎不会更改,因此它需要了解每个选定的列是固定的(作为 GROUP BY 的一部分)还是聚合的(SUM、COUNT、MIN、MAX 等)

SELECT appinfo.title, appinfo.description, appinfo.username, appinfo.genre, 
SUM(appratings.rating) AS totalscore
FROM appinfo LEFT JOIN appratings
ON appinfo.id=appratings.app_id
GROUP BY appinfo.title, appinfo.description, appinfo.username, appinfo.genre
ORDER BY totalscore DESC
;

关于php - SQL 列出最喜欢的游戏数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3983015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com