【发布时间】:2016-05-11 08:33:03
【问题描述】:
我有以下疑问:
"SELECT
bnbs.name,
bnbs.slug,
bnbs.city,
bnbs.website,
bnbs.description,
bnbs.profile_picture,
bnbs.price_low,
(SELECT AVG(ROUND((ratings.rating_room+ratings.rating_cleanliness+ratings.rating_service+ratings.rating_meals+ratings.rating_general)/5)) FROM ratings) AS average
FROM
bnbs
JOIN
accounts
ON
bnbs.account_id = accounts.account_id
WHERE
bnbs.average = 3
AND
bnbs.visible = 1
AND
accounts.active = 1
AND
accounts.confirmed = 1";
当我删除 where 子句中的“bnbs.average = 3”时,查询有效,但我想从 ALL 的评分中计算平均评分表评分中的每个 bnb(每个 bnb 可以有多个评分),我想选择所有评分 = 3 或 > 3 或 4 的 bnb... 我想你明白了。
有人有想法吗?
【问题讨论】:
-
我不明白这一点。一些正确的 CREATE 和 INSERT 语句和期望的结果的任何机会?
-
每个 bnb 的评分存储在单独的表(评分)中。想要选择平均评分(例如,一个 bnb 可以有多个评分 - 每个评分连续)为 3 或 4 的所有 bnb。