2016-10-11 2 views
2

Я пытаюсь обновить столбец с помощью pyobbc с данными из столбца в другой таблице в той же базе данных. Я пробовал:Обновить таблицу Access со значением из другой таблицы через INNER JOIN

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

которая также ошибки вне. Какая здесь правильная логика?

+0

Какую базу данных вы используете? Первый синтаксис похож на функцию, которую недавно выпустила PostgreSQL, но я не уверен, что другие DBs это делают. – FlipperPA

+0

@FlipperPA это MS Access db – BCM

ответ

2

Для доступа к базе данных вы хотите использовать запрос следующего вида:

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

Смежные вопросы