我有以下问题要问,也许你可以帮忙。我确实在这里也发现了类似的问题,但无法真正找出有效的方法来使其发挥作用。
我正在为使用 Access 数据库的客户开发此应用程序。
我有 2 个表,它们之间是多对多的关系。一个表是 Grants,另一个表是 Key_People。
为了支持多对多关系,我创建了另一个名为 Key_People_To_Grants 的表。
为了简化我的示例:我的 Grant 表包含:GrantID 和 GrantName 我的 Key_People 表包含:KeyPersonID 和 KeyPersonFName 和 KeyPersonLName 我的 Key_People_To_Grants 表当然包含:KeyPersonID 和 GrantID
我正在尝试使用带有此查询的 LEFT JOIN 获取所有 Grants,它工作得很好,我得到了 Key_People_To_Grants 表中的 Grants 以及其他尚未链接到 Key_People 的 Grants,这是根据需要。这是我正在使用的查询:
SELECT Grants.*, Key_People.firstName, Key_People.lastName FROM (Grants LEFT JOIN Key_People_To_Grants ON Grants.grantID = Key_People_To_Grants.grantID) LEFT JOIN Key_People ON Key_People_To_Grants.keyPersonID = Key_People.personID;
这个查询的唯一问题,正如我在网上许多关于 JOIN 的帖子中发现的那样,如果给定的 Grant 分配给多个 Key_People,它会返回重复的 Grants 记录。我尝试使用 Distinct(正如我在下面的查询中列出的那样),如果我只从 Grants 表中选择信息,它就可以工作,但只要我还要求 Key_People.firstName 和 Key_People.lastName 信息,Distinct 当然可以不行。
SELECT DISTINCT Grants.*, Key_People.firstName, Key_People.lastName
FROM (Grants LEFT JOIN Key_People_To_Grants ON Grants.grantID =
Key_People_To_Grants.grantID) LEFT JOIN Key_People ON
Key_People_To_Grants.keyPersonID = Key_People.personID;
您对如何完成摆脱返回的重复信息有任何建议,但仍然能够在我的示例中加入表格?
非常感谢