- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我网站的主页显示了 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 语句一起使用,我现在遇到问题
$gameinfo['id']
不会回显任何内容。)更新 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/
只是想知道 session 是否可用于在我的 Django 应用程序上创建两个产品的快速比较 View 。我正在列出待售商品,并希望用户能够“喜欢”多个商品,然后有一个新 View 来比较所选产品。有
我是一名优秀的程序员,十分优秀!