2011-07-22 32 views
2

设置我有SQL的下面一行返回所有同人画中,有一个等级的10 ...目前它的工作原理,但并不像最初预期的分贝...瑞风SQL结果由平均

我倒是想是因为它在评分表中返回结果,其中一个同人画的平均评分为10 ...每个同人画行可以参照相同的itemid,使我们能够有每艺术品的单peice的多个用户评级...我想它只是返回不同的itemid的所有评分的平均值为10

SELECT DISTINCT g.gametitle, 
       p.name, 
       g.id, 
       b.filename 
FROM games AS g, 
     banners AS b, 
     platforms AS p, 
     ratings AS r 
WHERE r.itemid = b.id 
     AND r.rating = '10' 
     AND g.id = b.keyvalue 
     AND r.itemtype = 'banner' 
     AND b.keytype = 'fanart' 
     AND g.platform = p.id 
ORDER BY Rand() 
LIMIT 6; 

这里是希望有人比我聪明可以算出来!

我试图创建一个子查询中使用的AVG()函数,但无济于事。

向前看一些发人深省的答复!

回答

2

这就要求聚集

SELECT g.gametitle, 
      p.name, 
      g.id, 
      b.filename 
    FROM games AS g, 
      banners AS b, 
      platforms AS p, 
      ratings AS r 
    WHERE r.itemid = b.id 
      AND g.id = b.keyvalue 
      AND r.itemtype = 'banner' 
      AND b.keytype = 'fanart' 
      AND g.platform = p.id 
    GROUP BY g.gametitle, 
      p.name, 
      g.id, 
      b.filename 
    HAVING AVG(r.rating) = 10 
+0

+1我在手机上,因此不够快... –

+0

我刚刚运行此查询,它就像一个魅力!非常感谢!我以前从未使用GROUP BY或HAVING! thnx为这个辉煌的帮助! – flexage

+0

@Flex乐意帮助! – JNK