我有以下 SQL 查询:
SELECT tblBooks.bookID,
tblBooks.title,
tblBooks.author,
tblBooks.coverImage,
ROUND(ROUND(tblReviews.rating * 2) / 2, 1) AS rating
FROM tblBooks
LEFT JOIN tblReviews
ON tblBooks.bookID = tblReviews.bookID
LEFT JOIN tblMembers
ON tblReviews.userID = tblMembers.userID
WHERE tblReviews.bookID IS NOT NULL
ORDER BY rating DESC
LIMIT 0, 40
我想查询数据库并返回平均评分,因此,如果一本书已被审查 6 次,则将 6 个用户的每个评分相加并计算平均值。现在只返回最新的评级。当我将此行更改为:
ROUND(ROUND(AVG(tblReviews.rating) * 2) / 2, 1) AS rating
总共只返回一个结果,所以显然有问题,但我不知道是什么。
如果有人能对此有所了解,我认为这与我的加入有关。