我刚刚建立了一个网站,并意识到我需要拥有前 3 名最高评价的专辑。我还没有建立跟踪收视率的东西。评级是单独存储的。谁能告诉我如何将这些组合在一起。
SELECT id, name FROM albums LIMIT 3
SELECT rating FROM ratings WHERE url=CONCAT('albums/show/', album.id)
让我稍微充实一下。我需要取回以下内容:
来自专辑表。身份证,姓名。我需要从评分表中取回平均评分。 ROUND((评分+评分+评分)/总评分)
收视率。用户可以对我网站上的所有内容进行评分,因此我有一个通用的评分表。评级与它适用的页面的 url 一起存储。因此,要获得专辑评级,我需要有“albums/show/{album_id}”。事后看来,我应该有一个 type 和 id 字段,但现在有点晚了,马上就要吃午饭了。
非常感谢任何帮助。
最佳答案
SELECT
a.id,
a.name,
AVG(r.rating) AS average
FROM
albums a
LEFT JOIN
ratings r
ON
r.url = CONCAT('albums/show/', a.id)
GROUP BY
a.id
ORDER BY
average DESC
LIMIT 3
(未经测试,参见 AVG()
)
关于mysql - 帮助 MySQL 连接语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2757537/