我在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'的查询表达式中出现”语法错误(缺少运算符),并且括号中没有认为它们是那里的问题。
答案 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)
问题是你的表名包含空格,所以查询解析器/引擎将它作为两个不同的文字名称。你应该使用[]
来逃避它们。另请注意,我使用了表别名(am
,cp
,ae
)以便于阅读。您的查询应该看起来像
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;