从表中的给定列表中搜索各种数字

时间:2012-10-28 16:25:36

标签: asp.net sql-server

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

我希望结果显示每个组名称以及搜索列表中的数字显示在内部的次数。

我还想表明它是否不是0。

示例:

groupName     NumOfCustomersFromTheSentListThatAreAttachedToTheGroup
  A                   0
  B                   3
我正在考虑这样的事情: select group_id,COUNT(userID)FROM userByGroup其中userID在(1,2,3,4)group by group_id;

然后我有两个问题:

  1. 我没有看到那些没有外观的(因为WHERE)
  2. 我得到每个外表的记录,我想要每个组的记录

1 个答案:

答案 0 :(得分: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]