小编典典

为什么在INNER JOIN不能的情况下导致LEFT JOIN导致“无法绑定多部分标识符”错误?

sql

尝试在Access 2010中运行以下SQL查询时,出现错误“无法绑定多部分标识符’MS2.ExtraValueID’”。

SELECT [Contact Details].ContactID
FROM ([Contact Details] LEFT JOIN [Extra Fields - Newsletters & Bulletins] ON [Contact Details].ContactID = [Extra Fields - Newsletters & Bulletins].ContactID) LEFT JOIN [Extra Fields - Number of Employees] ON [Extra Fields - Newsletters & Bulletins].ContactID = [Extra Fields - Number of Employees].ContactID;

ExtraValueID出现在两个“附加值…”查询的WHERE子句中,但不输出。

从几年前回头看这个问题),这表明这可能是由于错字造成的。但是,我看不到上面的SQL有什么问题,这表明组成这个更大的查询的单个查询之一是错误的。

但是,每个查询都可以单独运行,并且,如果我仅尝试将其中一个Extra Fields表联接到它,则可以正常工作。我以为“&”号可能会引起问题,但是用“
and”代替它们,或者完全删除它们并没有什么区别。

如果将LEFT JOINs替换为s INNER JOIN,则它会返回结果,但不会返回我想要的结果,因为无论是否在两个Extra
Fields表中都有匹配的记录,我都应从Contact Details中返回所有结果。

SELECT [Contact Details].ContactID, [Contact Details].[Client Code], [Extra Fields - Newsletters & Bulletins].Newsletters, [Extra Fields - Number of Employees].[Number of Employees]
FROM ([Contact Details] INNER JOIN [Extra Fields - Newsletters & Bulletins] ON [Contact Details].ContactID = [Extra Fields - Newsletters & Bulletins].ContactID) INNER JOIN [Extra Fields - Number of Employees] ON [Extra Fields - Newsletters & Bulletins].ContactID = [Extra Fields - Number of Employees].ContactID;

阅读 254

收藏
2021-03-23

共1个答案

小编典典

解决了这个问题-访问被发脾气,因为我混合INNERLEFT加入,即使INNER加入均构成的查询作出了较大的查询,并应当有刚被输出结果。通过替换INNER两个“额外字段”查询中的所有联接,该查询需要花费更长的时间才能运行,但可以正常运行。

2021-03-23