Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Memperbarui tabel dari tabel lain dengan banyak kolom di sqlalchemy

Saya tidak berpikir Anda bisa. Jadi, ini sebenarnya bukan jawaban, tapi terlalu panjang untuk dikomentari.

Anda dapat dengan mudah membuat kueri dengan 2 kolom (saya rasa Anda sudah mengetahuinya):

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

dan setelah itu Anda dapat menggunakan metode with_only_columns() , lihat 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)

Tetapi seperti yang Anda lihat dari pernyataan pembaruan, Anda akan secara efektif melakukan dua pilihan. (Maaf saya tidak menyesuaikan output sepenuhnya dengan contoh Anda, tapi saya yakin Anda mengerti idenya).

Saya tidak yakin apakah, seperti yang Anda katakan, MySQL akan cukup pintar untuk menjadikannya satu permintaan saja. Saya rasa begitu. Semoga bisa membantu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kueri sql hanya mengembalikan baris pertama

  2. aioMySQL tidak terhubung dengan python

  3. MySql. Cara menggunakan Gabung Sendiri

  4. PHP Mengurutkan koordinat terdekat

  5. CASE di MySQL memaksa tipe data kolom ke BIGINT alih-alih INT