加入 3 个 csv 文件
Posted
技术标签:
【中文标题】加入 3 个 csv 文件【英文标题】:Joining on 3 csv files 【发布时间】:2020-04-07 13:06:16 【问题描述】:我需要从 3 个不同的 CSV 文件(Adres.CSV、ID.CSV 和 Regios.CSV)中检索数据并将其合并到 Excel 表格中。
这条 SQL 语句运行良好,
StrSQL = "SELECT ID.[ID], Adres.[Naam], Adres.[Adres], Adres.[Plaats] " _
& "FROM Adres.CSV Adres INNER JOIN ID.CSV ID ON Adres.[Naam] = ID.[Naam];"
还有
StrSQL = "SELECT Adres.[Naam], Adres.[Adres], Adres.[Plaats], Regio.[Regio] " _
& "FROM Adres.CSV Adres INNER JOIN Regios.CSV Regio ON Adres.[Plaats] = Regio.[Plaats];"
但是当我把它们组合成
StrSQL = "SELECT ID.[ID], Adres.[Naam], Adres.[Adres], Adres.[Plaats], Regio.[Regio] " _
& "FROM Adres.CSV Adres " _
& "INNER JOIN Regios.CSV Regio ON Adres.[Plaats] = Regio.[Plaats]" _
& "INNER JOIN ID.CSV ID ON Adres.[Naam] = ID.[Naam];"
我收到一个操作员缺失的错误消息。
我忽略了什么?
【问题讨论】:
【参考方案1】:这里有两个问题:
-
您在第 3 行和第 4 行之间缺少一个空格。
JET/ACE SQL 要求您在执行多个连接时使用括号。
这应该可以修复您看到的 sql 错误:
StrSQL = "SELECT ID.[ID], Adres.[Naam], Adres.[Adres], Adres.[Plaats], Regio.[Regio] " _
& "FROM (Adres.CSV Adres " _
& "INNER JOIN Regios.CSV Regio ON Adres.[Plaats] = Regio.[Plaats]) " _
& "INNER JOIN ID.CSV ID ON Adres.[Naam] = ID.[Naam];"
您的字符串最终以...Regio.[Plaats]INNER JOIN ID.CSV...
进行评估。缺少空格会导致 sql 解析器错过您的第二个 INNER JOIN
。
【讨论】:
恐怕我们还没到那里,我又收到一条缺少操作员的消息:link 我忘记了 JET SQL 要求您在执行多个连接时使用括号。我更新了我的答案,不太确定我的括号是否在正确的位置。试一试。 啊,一百万,就是这样!我一定要把它写下来!!! 很高兴为您提供帮助。如果对您有帮助,请考虑接受此答案:-)以上是关于加入 3 个 csv 文件的主要内容,如果未能解决你的问题,请参考以下文章