相关的组行,我有两个表模式:SQL - 用户通过
- 评论(COMMENT_ID,文本)
- 票数(COMMENT_ID邀请,USER_ID,值)
Votes.value
可以是-1
或1
。
要获得所有与各自得分的意见,我做一个简单的组查询:
SELECT comments.*, SUM(votes.value) as score
FROM comments
LEFT JOIN votes on comments.comment_id = votes.comment_id
GROUP BY comments.comment_id
这个请求可以通过任何用户来执行,并且我对他的user_id
的变量。
如何还可以选择列my_vote
以获得用户投票的价值,或者如果用户未投票,则可以选择null
?
注:
想想计算器,其中每个答案是upvoted /用户downvoted,每个用户都可以看到,如果他upvoted或downvoted。
编辑:
我找到了解决办法 -
SUM(IF(user_id = $user_id, value, NULL)) as my_vote
虽然这种解决方案可以让我知道,如果用户投票与否,它并没有给我投票本身。我对使用比较用户的相同想法解决它的问题进行了编辑,但是给了我实际值 – Amit
@Amit。 。 。查看编辑后的版本。 –