gpt4 book ai didi

mysql - SQL - 分组依据上的用户相关行

转载 作者:行者123 更新时间:2023-11-29 19:13:32 24 4
gpt4 key购买 nike

我有两个表架构:

  • 评论(comment_id,文本)
  • 投票(comment_id、user_id、值)

Votes.value 可以是 -11

为了获取所有评论及其各自的分数,我做了一个简单的组查询:

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

注意:

想想 stackoverflow,其中每个答案都由用户赞成/反对,每个用户都可以看到他是否赞成或反对。

编辑:

我找到了解决方案 -

SUM(IF(user_id = $user_id, value, NULL)) as my_vote

最佳答案

我会使用以下内容:

SELECT c.*, SUM(v.value) as score, 
GROUP_CONCAT(CASE WHEN v.user_id = $user_id THEN value END) as my_vote
FROM comments c LEFT JOIN
votes v
on c.comment_id = v.comment_id
GROUP BY c.comment_id;

这使用 MySQL 速记法,将 bool 表达式视为数字上下文中的数字。

关于mysql - SQL - 分组依据上的用户相关行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42888107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com