次の 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
合計で 1 つの結果しか返されないため、明らかに何か問題がありますが、何が原因かわかりません。
誰かがこれに光を当てることができれば、それは私の結合と関係があると思います.