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

问题描述 投票:0回答:2

我有带桌子的桌子

id | groupName

然后是用户(在这里无关紧要)

id | userName

然后映射map-group-user

id | groupId | userId

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

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             

此方法...我的结果是:

名称| totalCount

group1 | 34

group2 | 23

group3 | 11

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

所以我想要这样的结果:

名称| totalCount | myUser

group1 | 34 | 1

group2 | 23 | 0

group3 | 11 | 1

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

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

感谢您的帮助

我有带有群组ID的表格| groupName然后是用户(在这里无关紧要)id | userName,然后映射map-group-user id | groupId | userId第一步,我想知道多少...

mysql sql left-join
2个回答
1
投票

将此添加为您选择的列:


0
投票

您可以在表和group_concat()之间使用联接作为用户名

© www.soinside.com 2019 - 2024. All rights reserved.