我有3张格式化为表格的数据。工作表名称为“Riesgos”,“Eventos”和“EventosRiesgos”。
EventosRiesgo提供有关事件和风险的信息(多对多关系)。
我正在尝试从Riesgos获得所有风险,但也有与风险相关的事件(。我使用ADODB查询工作表作为数据库表并使用以下SQL:
SELECT * FROM [Riesgos$] r
LEFT JOIN [EventosRiesgos$] er ON r.[Id]=er.[Id Riesgo]
LEFT JOIN [Eventos$] e ON er.[Id Evento]=e.[Id]
但是我得到一个错误,它是西班牙文,但粗略的翻译将是:语法错误(缺少运算符)在表达式“r。[Id] = er。[Id Riesgo] LEFT JOIN [Eventos $] e ON er。 [Id Evento] = e。[Id]“
当我仅使用前两行(只有一个连接)运行查询时,一切都按预期工作。我的问题是:当我使用两个JOIN时,为什么查询不起作用?
任何人都可以帮助我,至少找到有关使用ADODB查询Excel工作表的文档吗?
答案 0 :(得分:8)
访问 Jet / ADODB / ACE喜欢包含多个表的括号
SELECT * FROM ( [Riesgos$] r
LEFT JOIN [EventosRiesgos$] er ON r.[Id]=er.[Id Riesgo] )
LEFT JOIN [Eventos$] e ON er.[Id Evento]=e.[Id]
唯一的区别是[riesgos$] r .... er.[Id Riesggo]