我无法弄清楚为什么这个查询不起作用。它只返回1个结果,但应返回21个结果。总有一种产品可以从数据库中获取,但并不总是需要进行评估。
SELECT p.product_id, p.product_name, p.product_pic, AVG(r.review_stars)
FROM products as p
LEFT OUTER JOIN reviews as r ON p.product_id = r.review_product
ORDER BY p.product_clicks DESC
LIMIT 21
答案 0 :(得分:4)
这是因为在没有GROUP BY
子句的情况下,聚合函数总是返回唯一的行。
您的查询应该是这样的
SELECT p.product_id, p.product_name, p.product_pic, AVG(r.review_stars) avg_stars
FROM products as p LEFT OUTER JOIN reviews as r
ON p.product_id = r.review_product
GROUP BY p.product_id
ORDER BY p.product_clicks DESC
LIMIT 21