gpt4 book ai didi

mysql - 从 2 个表中获取数据 - 一次有计数,一次没有

转载 作者:行者123 更新时间:2023-11-29 07:17:06 24 4
gpt4 key购买 nike

我有组 table

编号 |组名

然后是用户(这里不重要)

编号 |用户名

然后映射map-group-user

编号 |群组编号 |用户ID

第一步我想知道每个组中有多少用户......

SELECT             
g.groupName as name, count(DISTINCT m.groupId, m.userId) as totalCount
FROM group g
LEFT JOIN map-group-user m ON ( g.id = m.groupId)
GROUP BY g.id

这有效...我的结果是:

名字 |总数

组1 | 34

组2 | 23

组3 | 11

现在我想在相同的结果中添加另一列...我想知道特定用户(比如说 userId = 1)是否被添加到这个特定的组(所以不仅要计算有多少用户加入了该组,还要知道我的用户属于哪个组)所以在同一个查询中,我想检查 map-group-user 中是否有我的 userId (1) 的每个组的条目

所以我想要这样的结果:

名字 |总数 |我的用户

组1 | 34 | 1

组2 | 23 | 0

组3 | 11 | 1

所以 myUser = 1 他已经在组中了...

我希望我的解释很清楚:)

感谢您的帮助

最佳答案

将此添加为您选择的列:

CASE
WHEN m.userId = 541 THEN 1
ELSE 0
END as myUser

在我的示例中,您的用户 ID 是 541。所以像这样:

SELECT g.groupName as name
, count(DISTINCT m.groupId, m.userId) as totalCount
, sum(CASE
WHEN m.userId = 541 THEN 1
ELSE 0
END) as myUser
FROM `group` as g
LEFT JOIN `map-group-user` as m ON (g.id = m.groupId)
GROUP BY g.groupName

这是 DEMO

关于mysql - 从 2 个表中获取数据 - 一次有计数,一次没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58650278/

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