9

我一生都无法弄清楚这条 SQL 语句有什么问题以及为什么它没有产生任何结果。如果我取出 LEFT JOIN 是有效的,那么它有什么问题?

SELECT  b.id, r.avg_rating
FROM    items AS b
LEFT JOIN
(
    SELECT avg(rating) as avg_rating
    FROM ratings 
    GROUP BY item_id
) AS r 
  ON b.id = r.item_id
WHERE b.creator = " . $user_id . " 
AND b.active = 1
AND b.deleted = 0
ORDER BY b.order ASC, b.added DESC

非常感谢您的帮助。

4

1 回答 1

21

在子查询中添加item_id 列(我保证它会起作用),以便ON子句可以找到r.item_id

SELECT item_id, avg(rating) as avg_rating
FROM ratings 
GROUP BY item_id
于 2012-10-19T08:25:09.760 回答