我有一些初学者类型的问题。
有人可以看看下面的关系,让我知道为什么我不能得到下面的表格/查询来只显示唯一的任命书吗?我有143封任命书。我有 135 个成员。我在联结表中有 585 条记录。我知道我搞砸了表单源查询(如下),但我有多糟糕?非常感谢您的专业知识。
使用的资源:
- 3 示例数据库
- 4 MS Access 2003/2010/2013 书籍
- 5个链接:
- https://stackoverflow.com/questions/13108525/ms-access-2010-query-pulls-same-records-multiple-times-sql-challenge
- https://stackoverflow.com/questions/473604/basic-many-to-many-sql-select-query
- access中查询多对多关系
- 帮助访问多对多关系(初学者)
- 在 MS Access 中查询多个表
关系截图:
形式:
询问:
查询语句:
SELECT DISTINCTROW tbl_apptltrs.*, jtbl_apptltrs_mbrs.*, tbl_mbrs.*
FROM tbl_mbrs INNER JOIN (
tbl_apptltrs INNER JOIN jtbl_apptltrs_mbrs
ON tbl_apptltrs.ApptLtrsID = jtbl_apptltrs_mbrs.LinkedApptLettersID)
ON tbl_mbrs.MembersID = jtbl_apptltrs_mbrs.LinkedMembersID;
我不得不在这里做一些心理调试,但一般来说,您应该将子窗体绑定到将联结表连接到相关记录表的查询。子表单内的表单不应该知道关系左侧的表 (tbl_apptltrs)。
所以链是这样的:
tbl_apptltrs
.tbl_appltrs
(例如父表单ApptLtrsID
= 子表单LinkedApptLettersID
)。jtbl_apptltrs_mbrs
到tbl_mbrs
(jtbl_apptltrs_mbrs.LinkedMemberID = tbl_mbrs.MemberID
) 的查询的子表单内的表单。