我有三张桌子:
People (PeopleID, Name, DOB, Gender etc...)
Events (EventID, EventTitle)
EventAllocations (AllocationID, PeopleID, EventID)
每个表的 ID 用作主键,在 EventAllocations 中 PeopleID 和 EventID 是外键。
基本上,我想将人员随机分配到特定事件(考虑陪审团选择或随机票奖)。
我想创建一个查询:
- 从 People 表中随机选择 20 行并将 PeopleID 写入 EventAllocations 的新行中
- 在每个新创建的行中写入 EventID 的常量值
我已经设法通过使用两个单独的查询来达到预期的效果。
查询一:
INSERT INTO EventAllocations (PeopleID)
SELECT TOP 20 People.[People ID]
FROM People
ORDER BY Rnd(People.[People ID]);
查询二:
UPDATE EventAllocations SET EventAllocations.EventID = 250
WHERE (((EventAllocations.EventID) Is Null));
注意我使用的是 Access 2007。
这一切似乎都非常低效 - 有没有更好的方法来解决这个问题?理想情况下,我想要一个同时完成两项任务的查询。