7
我需要幫助顯示當前用戶尚未投票的一個隨機結果。MySQL:顯示用戶未投票的一個隨機結果
目前我的數據庫設置,我已經試過可以http://sqlfiddle.com/#!2/2f91b/1
發現基本上我可以使用此查詢隔離各個項目的最後一個查詢:
SELECT a.img_url, a.item_id, a.user_id, a.img_status, b.item_question, c.user_name, c.user_fbid, d.voter_id, count(d.img_id) AS totalVotes
FROM os_photos a
LEFT JOIN os_items b ON a.item_id = b.item_id
LEFT JOIN os_users c ON a.user_id = c.user_id
LEFT JOIN os_votes d ON a.img_id = d.img_id
GROUP BY a.img_id
ORDER BY RAND()
LIMIT 1
我的問題是:隨着SQL知識我有,我無法孤立的結果,只顯示用戶#2沒有投票的行。我意識到問題在於當我使用group by時,它結合了voter_id,因此我無法檢查用戶#2是否有任何輸入。
實施例:
Item # | voter_id
1 | 2
1 | 3
2 | 2
3 | 1
3 | 4
4 | 3
4 | 1
5 | 1
5 | 2
利用上述樣本集,將得到的產品應該是項#3,#4或還沒有被表決任何其他項目。
非常感謝您的幫助,建議和知識。
我試着你的代碼在SQLfiddle中,它給了我一個錯誤。我還添加了一個例子,說明結果應該如何幫助。 – 2012-07-16 08:45:10
@MichaelCheung修正了...... WHERE應該總是在GROUP BY之前。我貼了它錯誤的行;)對不起 – poncha 2012-07-16 08:47:12
謝謝,這固定的查詢,但它仍然給我的結果,它不應該。例如,當它不應該是因爲用戶#2已經對項目#3進行投票時,它給了我項目#3的結果。 – 2012-07-16 08:57:18