【发布时间】:2015-01-15 04:49:58
【问题描述】:
对于用户和角色之间的多对多关系,我有以下 UserRole 表
UserRoleId | UserId | RoleId
------------------------
1 | 1 | A
2 | 1 | B
3 | 1 | C
4 | 2 | A
5 | 3 | B
6 | 3 | C
7 | 4 | C
我希望能够选择符合以下条件的用户: 1) 只有一个角色 2) 这个角色是 A
所以在上表中,应该只返回UserRoleId 4,因为它同时满足这两个条件。使用 groupby 并让我能够找到只有一个角色的 userId,但无法包括对第二个条件的检查。
select userId, count(userId)
from UserRole
group by userId
having COUNT(userId) = 1
如何使用groupby 和having 完成此操作?
【问题讨论】:
标签: sql-server group-by having