Cor*_*ett 4 t-sql many-to-many
(我认为我没有正确地提出这个问题 - 但我不知道如何描述它)
这是我想要做的:
假设我有一个具有PersonID字段的Person表.让我们说一个人可以属于许多群体.因此,存在具有GroupID字段的Group表和GroupMembership表,GroupMembership表是两个表之间的多对多连接,GroupMembership表具有PersonID字段和GroupID字段.到目前为止,它是一个简单的多对多加入.
给定一个GroupID列表,我希望能够编写一个查询,返回所有这些组中的所有人(不是这些组中的任何一个).并且查询应该能够处理任意数量的GroupID.我想避免动态SQL.
是否有一些简单的方法可以解决这个问题?谢谢,科里
select person_id, count(*) from groupmembership
where group_id in ([your list of group ids])
group by person_id
having count(*) = [size of your list of group ids]
Run Code Online (Sandbox Code Playgroud)
编辑:谢谢dotjoe!
| 归档时间: |
|
| 查看次数: |
1532 次 |
| 最近记录: |