【问题标题】:Update Access table with value from another table via INNER JOIN通过 INNER JOIN 使用另一个表中的值更新 Access 表
【发布时间】:2016-10-11 02:04:05
【问题描述】:

我正在尝试使用 pyodbc 使用同一数据库中另一个表中的列中的数据来更新列。我试过了:

cursor.execute('''
            UPDATE Prospect_SC_Fin_102016
            SET Prospect_SC_Fin_102016.Sym_Ky=Symbol_Ref_102016.Sym_Ky
            FROM Prospect_SC_Fin_102016
            INNER JOIN Symbol_Ref_102016
            ON Prospect_SC_Fin_102016.Symbol=Symbol_Ref_102016.Symbol;
            ''')
con.commit()
cursor.close()
con.close()

并得到一个“缺少运算符”的语法错误。

我也试过了:

cursor.execute('''
            UPDATE Prospect_SC_Fin_102016
            SET Prospect_SC_Fin_102016.Sym_Ky=(SELECT Sym_Ky
            FROM Symbol_Ref_102016 WHERE Symbol IN
            (SELECT Symbol FROM Prospect_SC_Fin_102016));
            ''')
con.commit()
cursor.close()
con.close()

这也出错了。这里的正确逻辑是什么?

【问题讨论】:

  • 您使用的是什么数据库?第一种语法看起来像最近的 PostgreSQL 版本支持的函数,但我不确定其他数据库是否支持。
  • @FlipperPA 这是一个 MS Access 数据库

标签: python sql ms-access pyodbc


【解决方案1】:

对于 Access 数据库,您可能希望使用以下形式的查询:

UPDATE Prospect_SC_Fin_102016
INNER JOIN Symbol_Ref_102016
    ON Prospect_SC_Fin_102016.Symbol=Symbol_Ref_102016.Symbol
SET Prospect_SC_Fin_102016.Sym_Ky=Symbol_Ref_102016.Sym_Ky

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多