Mysql
 sql >> база данни >  >> RDS >> Mysql

Актуализиране на таблица от друга таблица с множество колони в sqlalchemy

Не мисля, че можеш. Следователно това всъщност не е отговор, но е твърде дълго за коментар.

Можете лесно да съставите заявката си с 2 колони (предполагам, че вече знаете това):

select_query = select([table2.c.col1, table2.c.col2]).where(table1.c.key == table2.c.key)

и след това можете да използвате метода with_only_columns() , вижте api :

In[52]: print(table.update().values(col1 = select_query.with_only_columns([table2.c.col1]), col2 = select_query.with_only_columns([table2.c.col2])))
UPDATE table SET a=(SELECT tweet.id 
FROM tweet 
WHERE tweet.id IS NOT NULL), b=(SELECT tweet.user_id 
FROM tweet 
WHERE tweet.id IS NOT NULL)

Но както виждате от изявлението за актуализация, вие ефективно ще правите два избора. (Съжалявам, че не адаптирах изхода напълно към вашия пример, но съм сигурен, че схващате идеята).

Не съм сигурен дали, както казвате, MySQL ще бъде достатъчно умен, за да направи само една заявка. Предполагам. Надяваме се, че все пак ще помогне.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Условие WHERE в MySQL с 16 различни примера за заявка

  2. Затваряне на MySQL връзка в PHP

  3. mysql конектор cpp в centos 6 недефинирана препратка към

  4. MySQL:грешка 150 при използване на ON UPDATE SET NULL и ON DELETE SET NULL, защо?

  5. Прост урок за CRUD за Play Framework и MySQL с помощта на Ebean?