Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cập nhật một bảng từ một bảng khác có nhiều cột trong sqlalchemy

Tôi không nghĩ bạn có thể. Vì vậy, đây thực sự không phải là một câu trả lời, nhưng nó là quá dài cho một bình luận.

Bạn có thể dễ dàng soạn truy vấn của mình với 2 cột (tôi đoán bạn đã biết điều đó):

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

và sau đó, bạn có thể sử dụng phương thức with_only_columns() , xem 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)

Nhưng như bạn thấy từ câu lệnh cập nhật, bạn sẽ thực hiện một cách hiệu quả hai lựa chọn. (Xin lỗi, tôi đã không điều chỉnh đầu ra hoàn toàn cho ví dụ của bạn, nhưng tôi chắc rằng bạn hiểu rõ).

Tôi không chắc liệu, như bạn nói, MySQL sẽ đủ thông minh để thực hiện một truy vấn duy nhất. Tôi đoán vậy. Hy vọng nó sẽ giúp dù sao.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cấp quyền cho cơ sở dữ liệu MySQL bổ sung gây ra sự cố

  2. tham gia bên trong và thực hiện mệnh đề ở đâu trong ()?

  3. Hiệu suất kém trong Laravel

  4. Chọn điểm từ cơ sở dữ liệu bản đồ theo bán kính

  5. Theo dõi các kết nối đi