当前位置: 首页 > 面试题库 >

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

康照
2023-03-14
问题内容

尝试在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;

问题答案:

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



 类似资料:
  • 问题内容: 试试这个 给出错误 不能绑定多部分标识符“ tblJobBudget.lastmodifiedby”。 问题答案: 这是因为没有任何带有标识符的表或表别名。 您的表是: 但不是: 如果需要表中的列,则应在表中包含一个子句:

  • 问题内容: 架构: 问题查询: 生成此架构并在SQL Server 2008下在SQLFiddle中运行查询将导致: 对子查询使用CROSS APPLY而不是INNER JOIN可以解决此问题 有什么问题? 编辑:我添加了“ TOP 1”,它是真正查询的一部分,并且是问题的相关部分。 Edit2:有关该问题的更多信息。 问题答案: 您不能将from子句引用到JOIN的另一部分。 改用它。 已编辑

  • 我的依赖树和多个SLF4J绑定有问题。到目前为止,我发现这通常只会引起一个警告,但在我的情况下,它似乎会阻止我的程序运行:以下是我得到的例外情况: SLF4J:类路径包含多个SLF4J绑定。slf4j:在[jar:file:/c:/users/fischerni/.m2/repository/org/slf4j/slf4j-jdk14/1.5.3/slf4j-jdk14-1.5.3.jar!/or

  • 我正在用Python实现Kosaraju的强连接组件(SCC)图搜索算法。 这个程序在小数据集上运行得很好,但当我在一个超大图形(超过800000个节点)上运行它时,它会显示“分段错误”。 原因可能是什么?非常感谢。 附加信息:首先,我在超大数据集中运行时出现了这个错误: 然后我重置递归限制使用 但是有一个“分割错误” 相信我,这不是一个无限循环,它在相对较小的数据上正确运行。有可能是程序耗尽了资

  • 问题内容: 我的错误讯息: 多部分标识符table2.ValidSince“无法绑定。 我需要如何更改更新才能使其正常工作? 问题答案: 您需要加入

  • 问题内容: 遇到一个错误地使用 而不是 在其代码中的人,它没有显示为编译错误。 是因为 是相同的 ? 问题答案: 没有编译错误,因为它是有效的(尽管相当无用) 一元运算符 ,其使用方式与以下方式相同: Java语言规范中的相关部分是Unary Plus运算符+(第15.15.3节) 。它指定调用一元运算会导致操作数的一元数值提升(第5.6.1节)。这意味着: * 如果操作数是编译时类型的,,,或,