2012-10-19 16 views
7

このSQL文の何が間違っているのか、なぜ結果が得られないのか理解できません。私がLEFT JOINを取り出すと、それは何が問題なのですか?LEFT JOINのネストされたSELECT文

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 

非常に助けていただければ幸いです。

答えて

19

r.item_id

SELECT item_id, avg(rating) as avg_rating 
FROM ratings 
GROUP BY item_id 
+6

を見つけることができますサブクエリでitem_id列(私はそれがに動作することを保証)そうON句を追加するはいああ、もちろん、あなたのSQLマスタージョンに感謝!私は12分後にあなたの答えを受け入れるでしょう! – Wasim