2011-07-22 41 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