我不知道如何对SUM
某个项目进行上下投票,同时还返回给定用户是否对该项目进行了投票。
这是我的投票表:
item_id vote voter_id
1 -1 joe
1 1 bob
1 1 tom
3 1 bob
这item_id=1
是我要显示的数据:
如果Joe
正在查看页面:
total up votes: 2
total down votes: 1
my_vote: -1
Bob
:
total up votes: 2
total down votes: 1
my_vote: 1
这是我的代码:
SELECT MAX(CASE WHEN voter_id = 'joe' and vote=1 THEN 1
WHEN voter_id = 'joe' and vote='-1' THEN -1
ELSE 0 END)
AS my_vote, item_id, sum(vote=1) yes, sum(vote='-1') no
FROM Votes
WHERE item_id=1
问题是,my_vote=0
如果我使用MAX
函数和vote=-1
(乔的场景)。同样,my_vote=0
如果我使用 MIN 函数和vote=1
(Bob 的场景)。
想法?