非常基本的问题关于多对多查询MS-Access

时间:2018-12-10 12:45:08

标签: ms-access-2007

对于这个问题的平庸和基本性质,我们先表示歉意,但是我是Access的新手。我已经搜索了我的Access书和圣经,在线等内容,但无法解决这个非常简单的问题:

我为员工和他们可能参加的活动建立了多对多关系。员工可以参加许多活动。许多员工可以参加活动。我毫不费力地写一个查询来列出已参加工作的员工-例如-事件A OR 事件C。我不能做的是写一个查询来列出已参加工作的员工(例如)事件A AND 事件C。

我有三个表:
员工。密钥:EmployeeId。 (还包含姓名,职位等
EmployeeEvent 。按键:ID,EmployeeID
事件。键:EventID(还包含事件名称,日期等
员工链接到Employee.EmployeeID = EmployeeEvent.EmployeeID上的EmployeeEvent
事件链接到Event.EventID = EmployeeEvent.ID上的EmployeeEvent
OR查询没有问题。只是根本不知道如何使AND查询工作。
这是我的第一篇文章,在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

暴力破解方法是建立工会:

Select employeeID, EventID from EmployeeEvent
where employeeID = 9999999 and eventID = 8888

Union

Select employeeID, EventID from EmployeeEvent
where employeeID = 9999999 and eventID = 7777

“联盟”将消除结果中的所有重复项。 “全部联盟”将保留所有重复项。

此查询将不会显示在您的可视查询编辑器中。它将显示类似“无法显示”之类的内容,但它应该运行。

您还可以执行两个选择查询,针对您要查找的每个Employee / Event组合执行一个查询,然后在内部联接中链接这两个查询。参加两次活动的员工都应在结果中显示。只取决于您希望如何查看结果。