MySQL / PHP:如何使用JOIN语句计算某列的平均值

时间:2017-08-29 22:59:10

标签: php mysql

我有一个items表,其中包含以下列:idnamecategory和一个ratings表,其中包含列:id,{ {1}},item

如何计算每件商品的平均评分?

我想用:

返回一个php数组
rating

到目前为止,这是我的PHP功能:

[id] => item.id
[name] => item.name
[rating] => average rating

1 个答案:

答案 0 :(得分:2)

只需使用SQL AVG()函数,无需在PHP中执行。您还需要GROUP BY项目的ID,否则您将获得每个项目的平均值:

SELECT item, AVG(rating) as rating, items.id, items.name FROM ratings INNER JOIN items ON ratings.item=items.id WHERE category = '" . $category . "' GROUP BY items.id;

现在,结果中的rating字段是每个项目的平均值。

您应该阅读prepared statements。现在,您的查询很容易受到SQL注入的攻击。<​​/ p>