我有 4 个表,组、成员资格、人员和属性。
团体
GroupID
GroupName
ParentGroupID
会员资格
PersonID
GroupID
人
PersonID
Name
属性
AttributeID
GroupID
Value
属性分配给组,组通过成员资格表分配人员。
我想显示与特定人相关的所有属性。
对于没有父母的小组中的某人,我没有遇到任何麻烦,但有些小组的嵌套深度为 2 或 3 层。到目前为止,我使用 CTE 方法的尝试没有产生任何结果。
示例结果
Person.Name Membership.GroupID Group.GroupID Group.ParentGroupID Attribute.Value
Fred 3 1 NULL 'Attribute for Top level group'
Fred 3 2 1 'Attribute for a sub group'
Fred 3 3 2 'Attribute for third sub group'
Fred 5 4 1 'Attribute for Top level group - this is a duplicate?'
Fred 5 5 4 'Attribute for second sub group'
希望这足够清楚。Fred 是第 3 组的成员,该组的父组为 2,而父组为 3,然后显示与每个组匹配的每个属性(Group.ID 与 Attribute.GroupID 的内部连接将实现此目的)
编辑 - 只是添加一个注释,每个人都可以是多个组的成员。