我一直在創建我自己的留言板,雖然它工作正常,但我想添加投票投票(圖中末尾的帖子)。如何將MySQL SUM()函數添加到此查詢中?
我把我從我的兩個表想要的數據msgboard_user和msgboard_post這樣的:所以現在我需要用第三個表,msgboard_vote合作
SELECT p.post_id, p.user_id, u.username, get_time_diff(p.date) as date, p.ip, p.text, p.parent_post_id, p.approved AS posts
FROM msgboard_post p, msgboard_user u
WHERE p.user_id = u.user_id
AND p.approved = "yes"
ORDER BY p.date DESC
-- code for limit...
。每張投票都會在表格中顯示一行,我希望我的結果中有一列可以對該帖子的投票進行總結。投票(vote_value)可以是1或-1。沒有投票的帖子(msgboard_vote中沒有行)最好在結果中總結爲0,null也可以。
擺弄了幾個小時...:/ 將不勝感激一些幫助在此:)
謝謝Malvolio幫助我。真的超級!我甚至可能會轉換爲計數(*),因爲在您的代碼而不是總和。我不確定如果用戶開始投票,他們會被冒犯。也許是最好的。 – Marcus
如果你可以使用'count',你應該這樣做,因爲有時候優化器可以只從索引頁面計算出計數值,並且查詢的運行速度要快兩倍。如果使用SUM,它可能需要檢索實際值來檢查它是否爲非空值。 – Malvolio