使用 pyodbc 连接 mdb 表

Posted

技术标签:

【中文标题】使用 pyodbc 连接 mdb 表【英文标题】:JOINing mdb tables with pyodbc 【发布时间】:2012-03-14 10:55:57 【问题描述】:

我尝试在 python (pyodbc) 中以这种方式 JOIN 两个 MS 访问表:

query = "SELECT Karta.id FROM Karta JOIN zaznam ON (Karta.id=zaznam.karta)"
cursor.execute(query) 

但我收到一个错误:

pyodbc.ProgrammingError 42000  microsoft access driver syntax error in form clause -3506 SqlExecDirectW

我做错了什么?

【问题讨论】:

【参考方案1】:

您需要在FROM 子句中指定连接类型(INNERLEFT OUTERRIGHT OUTER)。使用的连接类型取决于您希望结果包含什么,我猜您想要一个INNER JOIN。可以在 here 找到有关 Access 中可用连接类型的参考。

示例代码假设INNER JOIN

query = "SELECT Karta.id FROM Karta INNER JOIN zaznam ON (Karta.id=zaznam.karta)"
cursor.execute(query) 

【讨论】:

以上是关于使用 pyodbc 连接 mdb 表的主要内容,如果未能解决你的问题,请参考以下文章

pyodbc 访问数据库 MSysObjects 权限问题

使用 pyodbc 和 pandas 将 CSV 加载到 .mdb

如何将 pyodbc 连接到 Access (.mdb) 数据库文件

Python如何连接有密码的Access数据库并且查询数据

使用 SELECT ... INTO 使用 pyodbc 创建一个新的 Access 表

使用 Access 和 pyodbc 的 INSERT 语句中的语法错误