2016-10-11 55 views
2

我试图使用pyodbc更新列中同一数据库中另一个表中列的数据。我试过了:通过INNER JOIN更新从另一个表中获取值的Access表

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() 

并且得到一个“missing operator”语法错误。

我也试过:

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() 

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

+0

您正在使用什么数据库?第一种语法看起来像最近PostgreSQL发布支持的函数,但我不确定其他DB是否支持。 – FlipperPA

+0

@FlipperPA它是一个MS Access db – BCM

回答

2

对于你想使用以下形式的查询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 
+0

是的完美谢谢你! – BCM