帮助MySQL加入声明

时间:2010-05-03 10:59:16

标签: mysql join

我刚刚建立了一个网站,并且意识到我需要拥有前3名评分最高的专辑。我还没有内置能够跟踪收视率的内容。评级单独存储。有人可以告诉我如何将这些放在一起。

SELECT id,name FROM album LIMIT 3

从评级中选择评级WHERE url = CONCAT('albums / show /',album.id)

让我稍微充实一点。我需要回过头来看看:

从相册表中。 id,名字。从评级表中我需要回到平均评级。 ROUND((评级+评级+评级)/总评分)

评级。用户可以对我网站上的所有内容进行评级,因此我有一个通用评级表评级与其适用的页面的URL一起存储。因此,要获得专辑评分,我需要有'专辑/ show / {album_id}'。在后面的视线中,我应该有一个类型和id字段,但现在有点晚了,午餐时间很晚。

非常感谢任何帮助。

1 个答案:

答案 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()