Access数据库中多值字段的关系

时间:2014-01-21 16:01:12

标签: database ms-access ms-access-2013

有人知道如何在一个字段中放置多个值来建立两个不同记录之间的关系吗?

Google翻译(来自德语):

  

使用多值字段

     

在大多数系统中,DBMS(数据库管理系统),包括早期   Microsoft Access的版本,您只能在一个存储单个值   领域。在Microsoft Office Access 2007中,您还可以创建字段   包含多个值,例如要列出的类别   你已经分配了条件。多值字段具体使用   某些情况,例如当您使用Office Access 2007工作时保存在   Windows SharePoint Services 3.0列表,其中包含一个字段   具有Windows中可用的多个值的字段类型   数据SharePoint Services。

     

本主题介绍如何在其中创建和使用多值字段   Office Access 2007和Windows SharePoint Services,如何创建   多值字段和使用,以及如何在a中使用多值字段   查询。

1 个答案:

答案 0 :(得分:-1)

您可以在JOIN条件中使用多值查找字段(通过它们的.Value属性),但请注意,如果连接的两边都有这样的字段,那么它将在任何项目在已加入的字段上匹配,而不是在所有项目匹配时匹配。根据具体情况,这可能是也可能不合适。

案例1:过敏学生

学校管理员需要跟踪过敏的学生,并向他们提供他们在学校食堂吃饭时应避免的膳食清单。

[学生]

ID  Student  Allergies
--  -------  ---------
1   Alice    Eggs, Soy
2   Bradley  Peanuts
3   Carol    
4   Dennis   Soy

[餐食]

ID  Meal           Allergens
--  -------------  ---------
1   Thai stir-fry  Peanuts
2   Tofu omlette   Eggs, Soy
3   Waffles        Eggs

查询

SELECT Students.Student, Students.Allergies, Meals.Meal, Meals.Allergens
FROM Students INNER JOIN Meals ON Students.Allergies.Value = Meals.Allergens.Value;

返回

Student  Allergies  Meal           Allergens
-------  ---------  -------------  ---------
Alice    Eggs, Soy  Tofu omlette   Eggs, Soy
Alice    Eggs, Soy  Waffles        Eggs
Bradley  Peanuts    Thai stir-fry  Peanuts
Dennis   Soy        Tofu omlette   Eggs, Soy

这是合适的,因为爱丽丝应该避免含有任何成分对她过敏的食物。

案例2:酒店要求

[游客]

ID  Traveller  Requirements
--  ---------  -------------------------
1   Gord       free WiFi, in-room coffee

[酒店]

ID  Hotel         Amenities
--  ------------  ----------------------------
1   Budget Motel  free WiFi, in-room coffee
2   Fancy Hotel   in-room coffee, room service

查询

SELECT Travellers.Traveller, Travellers.Requirements, Hotels.Hotel, Hotels.Amenities
FROM Hotels INNER JOIN Travellers ON Hotels.Amenities.Value = Travellers.Requirements.Value;

返回

Traveller  Requirements               Hotel         Amenities
---------  -------------------------  ------------  ----------------------------
Gord       free WiFi, in-room coffee  Budget Motel  free WiFi, in-room coffee
Gord       free WiFi, in-room coffee  Fancy Hotel   in-room coffee, room service

查询返回两个属性,因为它们都提供室内咖啡。但是,Fancy Hotel酒店不提供免费WiFi,所以我不想留在那里。在这种情况下,默认的连接行为是不可取的(对我而言)。