【发布时间】:2009-09-22 09:09:46
【问题描述】:
SELECT game_ratingstblx245v.game_id,avg( game_ratingstblx245v.rating )
as avg_rating,
count(DISTINCT game_ratingstblx245v.userid)
as count,
game_data.name,
game_data.id ,
avg(game_ratings.critic_rating),count(DISTINCT game_ratings.critic)
as cr_count
FROM game_data
LEFT JOIN game_ratingstblx245v ON game_ratingstblx245v.game_id = game_data.id
LEFT JOIN game_ratings ON game_ratings.game_id = game_data.id
WHERE game_data.release_date < NOW()
GROUP BY game_ratingstblx245v.game_id
ORDER BY game_data.release_date DESC,
game_data.name
我目前正在使用此查询从 3 个表中提取值
game_data - id(外键),名称,release_date \游戏信息
game_ratings - game_id(外键),critic, rating \critic rating
game_ratingstblx245v - game_id(外键), rating, userid \user rating
我想要对这个查询做的是从表 game_data 中选择所有 id,按 release_date 降序排列,然后检查表 game_ratings 和 game_ratingsblx245v 对应于个人 id 的平均评级(如果游戏没有被评级,结果应该从后两个表的字段返回 null)..现在我在这里面临的问题是结果没有按预期出现(一些未评级的游戏出现了,而另一些则没有),你们可以检查我的查询并告诉我哪里错了……谢谢
【问题讨论】:
-
你不应该按 game_data.game_id 分组吗?
-
这个家伙,我只是忽略了它......谢谢你这样做