2017-04-18 120 views
0

我的慈善机构的Access数据库有志愿者2个表:该组的的MS Access多值查询

Volunteers: 
VID - ID of volunteer 
ActiveGroups - Multivalue list of VolunteerGroups that they're active in 
InterestGroupss - Multuvalue list of VolunteerGroups that they are interested in 

VolunteerGroups: 
ID - ID of group 
GroupName - name of group 

我需要编写一个查询上市的人谁是有兴趣在一组,而不是一部分,是完全被卡住。任何帮助将不胜感激。谢谢

+0

发布架构。如果你在属性中有多个值,那么你不在1NF,你需要在继续之前解决这个问题。 – nicomp

+0

@nicomp访问多值字段实际上是独立的表,用于处理不希望看到或使用额外表的人员的多对多关系。它们是1NF,因为它们实际上是分开的表格(至少根据Microsoft,请参阅https://support.office.com/zh-cn/article/Guide-to-multivalued-fields-7c2fd644-3771-48e4-b6dc-6de9bebbec31 ) –

+0

@ErikvonAsmuth我明白你的意思了。那些超级笨拙的,我不使用它们:我只是创建外键,并在必要时填充控件。 – nicomp

回答

0

多值字段是一个麻烦,应该避免,但据我所知,这应该工作(它将加入VolunteerGroups表两次, ActiveGroupss,以便您可以查看该人不在该组中)

SELECT VID 
FROM Volunteers 
Inner Join VolunteerGroups As InterestedGroup ON InterestedGroup.ID = InterestedGroupss.Value 
LEFT JOIN VolunteerGroups As ActiveGroup ON ActiveGroup.ID = ActiveGroups.Value 
WHERE ActiveGroup.ID Is Null