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