所以我的網站的主頁顯示的PMP應用程序。用戶可以使用「喜歡」,「不喜歡」或「中性/無」評分這些應用(默認情況下,每個應用的評分爲中性/無)。SQL列表遊戲數據庫最喜歡
在主頁上,我想列出遊戲的最高差(所以需要將Like和Dislike的總數加在一起。)我很難使SQL語句正確地做到這一點。
我的表結構是這樣的:
appinfo: id; name; genre; ...
appinfo
基本上包含所有的應用程序的元數據。關於評級沒有什麼。
接下來,我有apprating
表:
apprating: username; app_id; rating;
這是所有的評級被存儲。評分存儲爲-1(不喜歡),0(中性/無)和1(喜歡)。我希望這個結構能夠更容易地設置整個陳述。任何人都可以幫我寫一篇嗎?我最終寫了一個可笑的長文章,沒有正確排序或顯示評級數字。
SELECT appinfo.title, appinfo.description, appinfo.username, appinfo.genre
FROM appinfo
LEFT JOIN appratings ON appinfo.id=appratings.app_id
GROUP BY appinfo.id
ORDER BY SUM(appratings.rating) DESC
非常感謝您通過閱讀,只是一個SQL語句和糾正對我的邪惡SQL的方式將是很好!
UPDATE:
所以之前有一個評級系統,我有我的SELECT語句,然後在PHP中我最好mysql_fetch_array
,然後通過循環和呼應他們的詳細資料,有效地讓我做的事情,如:
...
<p class="description"><?php echo $gameinfo['description']; ?></p>
...
哪一個會抓住遊戲的描述並回應它。現在,說明仍然有效,但因爲我現在有涉及使用SUM和我一樣的/不喜歡的一個奇怪的系統和appinfo.id和apprating.app_id連接語句,我現在
- 迴響遇到問題當前遊戲的ID,(回聲
$gameinfo['id']
不會迴應任何內容。) - 如何獲得Like/Dislike的SUM並回顯?
更新2
的SQL語句讓我寫echo $gameinfo['totalscore']
讓喜歡/不喜歡分歧,我不得不添加appinfo.id
的選擇要能夠呼應ID。
我覺得這很愚蠢,因爲我意識到我原來的問題是錯誤的。這是正確的,但我正確地得到了一切。如果你能幫助我解決這個問題,我應該問這個問題,這也是非常棒的。 (更新主文章。) – NessDan 2010-10-20 23:41:08
appinfo.id列未包含在原始SELECT中,因此它不適用於使用該結果集的任何PHP例程。在SELECT子句和GROUP BY子句中包含appinfo.id,它將包含在PHP代碼將檢索的結果集中。 – 2010-10-21 00:03:08
對不起,在發佈內容之前,我真的需要三思而後行,我發現你的SQL語句讓我回聲totalscore(真棒!) – NessDan 2010-10-21 00:06:45