4

我有 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]"

当我只使用前 2 行(只有一个连接)运行查询时,一切都按预期工作。我的问题是:为什么当我使用两个 JOIN 时查询不起作用?

谁能帮助我,至少找到有关使用 ADODB 查询 Excel 工作表的文档?

4

1 回答 1

9

Access 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]

于 2012-09-07T17:56:24.560 回答