Left Outer Join只返回一个结果

时间:2014-01-09 00:23:30

标签: mysql outer-join

我无法弄清楚为什么这个查询不起作用。它只返回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

1 个答案:

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