2012-08-03 59 views
3

我面对的问题是,我想加入这两个查询。Mysql,加入查询,困惑

SELECT recipes.RecipeID ,recipes.Name,recipes.ImageThumb,recipes.RatingTotal, 
    count(ratings.RecipeID) AS trates 
    FROM recipes 
     JOIN ratings 
      ON ratings.RecipeID = recipes.RecipeID 
    WHERE recipes.Name LIKE '%ade%' 
    ORDER BY Name; 

根据需要此查询不工作,它带来1分的结果时,有一个以上,且trates之际,总的所有结果,而不是只对特定的RecipeID

回答

3

我的认为这是你正在寻找的:

SELECT recipes.RecipeID ,recipes.Name,recipes.ImageThumb,recipes.RatingTotal, 
     COUNT(ratings.RecipeID) AS trates 
FROM recipes 
    LEFT JOIN ratings 
     ON ratings.RecipeID = recipes.RecipeID 
WHERE recipes.Name LIKE '%ade%' 
GROUP BY RecipeID 
ORDER BY Name; 
+0

谢谢你的工作! – 2012-08-03 09:17:16

+0

欢迎!不要忘记接受最好的答案! :) – Omesh 2012-08-03 09:18:27