我似乎无法让这个 sql 查询以我想要的方式工作
Posted
技术标签:
【中文标题】我似乎无法让这个 sql 查询以我想要的方式工作【英文标题】:I can't seem to get this sql query to work the way i want 【发布时间】:2014-07-18 06:43:27 【问题描述】:我有一张表,上面有一些书籍的评分;
这些是我为测试此查询而创建的一些虚拟记录;
ID BookID RatersID Rating Date
1 2 3 5 (date)
2 2 4 4 (date)
SELECT `RatersID`,
COUNT(*) AS `raters`, `Rating`, COUNT(*) AS `Ratings`
FROM
`BOOKS_ratings`
GROUP BY
`BookID`
当我运行我期望的查询时
BookID Raters Ratings
2 2 9
我得到了什么:
RatersID raters Rating Ratings
3 2 5 2
我不明白为什么会这样? /////////////////以上已回答
我的查询工作正常,但是当尝试在 php 中接收信息时,数字重复了
例如评分者 = 2 PHP 显示 22 评分 = 9 PHP 显示 99
$getratingq = mysqli_query($con,"SELECT `RatersID`, COUNT(*) AS `Raters`, sum(Rating) AS `Ratings` FROM `BOOKS_ratings` WHERE `BookID` ='$bookid' GROUP BY `BookID` LIMIT 1") or die("Get ratings query error");
if($getrating = mysqli_fetch_array($getratingq))
echo $ratings = $getrating['Ratings'];
$raters= $getrating['Raters'];
$rating = $ratings/$raters;
$stars = floor("$rating");
【问题讨论】:
【参考方案1】:你需要使用sum()
得到Rating的总和
SELECT
`BookID`,
COUNT(*) AS `raters`
sum(Rating) as Ratings
FROM
`BOOKS_ratings`
GROUP BY
`BookID`
【讨论】:
谢谢你,我意识到我的错误,我使用了计算有多少人评分的计数,我应该使用总和以上是关于我似乎无法让这个 sql 查询以我想要的方式工作的主要内容,如果未能解决你的问题,请参考以下文章