我有两张桌子:
食谱
食谱 ID | 用户名 | 姓名 | 等等
和
食谱评级
RecipeRatingId | 配方 ID| 用户名 | 评分| 评论
我想选择一个食谱列表并包括平均评分。像这样的东西会起作用:
SELECT
Recipes.RecipeId,
Name,
AVG(RecipeRatings.Rating) AS AverageRating
FROM Recipes
INNER JOIN RecipeRatings
ON RecipeRatings.RecipeId = Recipes.RecipeId
GROUP BY Recipes.RecipeId, Recipes.Name
ORDER BY AverageRating DESC
但我真正想要的是获得平均或当前用户评分。如果用户对它的评价更高或更低,我似乎不应该费心显示平均值。
所以给定一个参数@userId,有没有办法从RecipeRatings 表中选择一个食谱列表以及当前用户的评分(如果有的话),否则是平均值(如果有的话)?
拥有AverageRating 和MyRating 列也很好,这将由客户端来正确显示。