使用 SELECT ... INTO 使用 pyodbc 创建一个新的 Access 表
Posted
技术标签:
【中文标题】使用 SELECT ... INTO 使用 pyodbc 创建一个新的 Access 表【英文标题】:Creating a new Access table with pyodbc using SELECT ... INTO 【发布时间】:2014-05-12 15:26:04 【问题描述】:我正在尝试基于 3 个不同的 Access 表创建一个名为 Component_New 的新表,并使用公共字段进行连接。
我目前有以下:
Make_Table = """ SELECT mapunit.mukey, copmgrp.cokey, copmgrp.copmgrpkey, copm.pmkind, copm.pmorigin, component.comppct_r, component.compname, component.majcompflag, copmgrp.pmgroupname INTO Component_Table FROM (mapunit INNER JOIN component ON (mapunit.mukey = component.mukey) INNER JOIN copmgrp ON (component.cokey = copmgrp.cokey) INNER JOIN copm ON (copmgrp.copmgrpkey = copm.copmgrpkey) INNER JOIN chorizon ON (component.cokey = chorizon.cokey)) """
cursor.execute(Make_Table)
con.commit()
似乎找不到我的错误! 提前谢谢!
为了更好地理解我的问题:我只是想知道如何获取以下添加/连接信息并使用它创建一个表 --> JOINing mdb tables with pyodbc
我的以下代码在 Access 中工作,但我需要将其放入 Python 中,以便我可以循环通过多个不同的县来执行相同的添加/加入:
SELECT mapunit.mukey, copmgrp.cokey, copmgrp.copmgrpkey, copm.pmkind, copm.pmorigin, component.comppct_r, component.compname, component.majcompflag, copmgrp.pmgroupname
INTO Component_Table
FROM (((mapunit INNER JOIN component ON mapunit.mukey = component.mukey)
INNER JOIN copmgrp ON component.cokey = copmgrp.cokey)
INNER JOIN copm ON copmgrp.copmgrpkey = copm.copmgrpkey)
INNER JOIN chorizon ON component.cokey = chorizon.cokey;
【问题讨论】:
请使用代码格式 我认为是代码格式? 【参考方案1】:Python Make_Table
字符串中的括号不在正确的位置。在您的 Python 脚本示例中,您(错误地)仅将括号放在 ON 条件周围
SELECT
mapunit.mukey, copmgrp.cokey, copmgrp.copmgrpkey, copm.pmkind, copm.pmorigin, component.comppct_r, component.compname, component.majcompflag, copmgrp.pmgroupname
INTO Component_Table
FROM
(
mapunit
INNER JOIN
component
ON (mapunit.mukey = component.mukey)
INNER JOIN
copmgrp
ON (component.cokey = copmgrp.cokey)
INNER JOIN
copm
ON (copmgrp.copmgrpkey = copm.copmgrpkey)
INNER JOIN
chorizon
ON (component.cokey = chorizon.cokey)
)
而在后续的 Access 示例中,您在整个 INNER JOIN 构造周围都有括号(正确),这是 Access SQL 所要求的
SELECT
mapunit.mukey, copmgrp.cokey, copmgrp.copmgrpkey, copm.pmkind, copm.pmorigin, component.comppct_r, component.compname, component.majcompflag, copmgrp.pmgroupname
INTO Component_Table
FROM
(
(
(
mapunit
INNER JOIN
component
ON mapunit.mukey = component.mukey
)
INNER JOIN
copmgrp
ON component.cokey = copmgrp.cokey
)
INNER JOIN
copm
ON copmgrp.copmgrpkey = copm.copmgrpkey
)
INNER JOIN
chorizon
ON component.cokey = chorizon.cokey
您需要调整 Python 代码中的 SQL 字符串,以便括号在正确的位置。
【讨论】:
以上是关于使用 SELECT ... INTO 使用 pyodbc 创建一个新的 Access 表的主要内容,如果未能解决你的问题,请参考以下文章
MySQL存储过程中使用SELECT …INTO语句为变量赋值
使用 SELECT ... INTO 将 Access 表中的特定列导出到 CSV