我刚刚建立了一个网站,并且意识到我需要拥有前3名评分最高的专辑。我还没有内置能够跟踪收视率的内容。评级单独存储。有人可以告诉我如何将这些放在一起。
SELECT id,name FROM album LIMIT 3
从评级中选择评级WHERE url = CONCAT('albums / show /',album.id)
让我稍微充实一点。我需要回过头来看看:
从相册表中。 id,名字。从评级表中我需要回到平均评级。 ROUND((评级+评级+评级)/总评分)
评级。用户可以对我网站上的所有内容进行评级,因此我有一个通用评级表评级与其适用的页面的URL一起存储。因此,要获得专辑评分,我需要有'专辑/ show / {album_id}'。在后面的视线中,我应该有一个类型和id字段,但现在有点晚了,午餐时间很晚。
非常感谢任何帮助。
答案 0 :(得分:2)
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()
)