查询表达式中的语法错误(缺少运算符)

时间:2015-05-26 20:12:47

标签: sql syntax-error ms-access-2010

我在Access 2010中有一个表,我想从几个表中做一个INNER JOIN查询,我做的如下:

SELECT *
FROM (Archivo Maestro 
         INNER JOIN Concepto Presupuestal 
             ON Archivo Maestro.ID Concepto Presupuestal = Concepto Presupuestal.ID Concepto Presupuestal) 
         INNER JOIN asunto_estrategico 
             ON Archivo Maestro.ID Asunto Estrategico = asunto_estrategico.ID Asunto Estrategico;

但是我收到一条错误,说“在'Archivo Maestro.ID Concepto Presupuestal = Concepto Presupuestal.ID Concepto Presupuesta'的查询表达式中出现”语法错误(缺少运算符),并且括号中没有认为它们是那里的问题。

2 个答案:

答案 0 :(得分:0)

您应避免在表名,列名或字段名中包含空格。

试试这个:

SELECT * FROM [Archivo Maestro] INNER JOIN [Concepto Presupuestal] ON([Archivo Maestro]。[ID Concepto Presupuestal] = [Concepto Presupuestal]。[ID Concepto Presupuestal])INNER JOIN asunto_estrategico ON([Archivo Maestro]。 [ID Asunto Estrategico] = asunto_estrategico.ID);

最好的建议是使用下划线而不是空格重命名所有表格和列:Concepto Presupuestal - > Concepto_Presupuestal。这将为您节省很多问题。

答案 1 :(得分:0)

问题是你的表名包含空格,所以查询解析器/引擎将它作为两个不同的文字名称。你应该使用[]来逃避它们。另请注意,我使用了表别名(amcpae)以便于阅读。您的查询应该看起来像

SELECT am.* FROM [Archivo Maestro] am
INNER JOIN [Concepto Presupuestal] cp ON am.ID = cp.ID 
INNER JOIN [asunto_estrategico] ae ON am.ID = ae.ID;