-1

我有一个简单的问题,我找不到任何参考,我将不胜感激。我有一个从客户端发送到服务器的 user_id 列表 - 例如 - (1,2,3,4),我想在组表中搜索每个组有多少次将这些用户放入其中。组表的列是:group_id、group_name、user_id

我希望结果显示每个组名和搜索列表数字中出现的次数。

我也想显示它是否不为 0。

例子:

groupName     NumOfCustomersFromTheSentListThatAreAttachedToTheGroup
  A                   0
  B                   3

我在想这样的事情: select group_id,COUNT(userID) FROM userByGroup where userID in (1,2,3,4) group by group_id;

但后来我有两个问题:

  1. 我看不到那些没有外表的(因为 WHERE)
  2. 我得到了每次出场的记录,我想要每个组的记录
4

1 回答 1

1

我假设您有一个单独的组表 [Groups] 和一个将用户映射到组 [UserGroups] 的单独表。如果是这种情况,你应该能够摆脱这个:

select group_id, (select COUNT(user_id) from [UserGroups] where [UserGroups].group_id = [Groups].group_id and [UserGroups].user_id in (1,2,3,4)) NumberOfUsers from [Groups]

如果没有,那么您必须像这样子查询原始表:

select group_id, (select COUNT(user_id) from [Groups] g2 where g2.group_id = [Groups].group_id and g2.user_id in (1,2,3,4)) NumberOfUsers from [Groups]
于 2012-10-28T18:20:01.353 回答