通过 INNER JOIN 使用来自另一个 table 的值更新访问 table
Update Access table with value from another table via INNER JOIN
我正在尝试使用 pyodbc 使用同一数据库中另一个 table 中的列中的数据更新列。我试过:
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()
这也出错了。这里的正确逻辑是什么?
对于 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
我正在尝试使用 pyodbc 使用同一数据库中另一个 table 中的列中的数据更新列。我试过:
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()
这也出错了。这里的正确逻辑是什么?
对于 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