我尝试根据在另一个表中找到的值更新一个表。以下作品:
UPDATE table1 SET col1 = ( SELECT col1 from table2 WHERE table2.col1 = table1.col1 );
我想使用多个列来做同样的事情。我认为以下应该会带来预期的结果”
UPDATE table1 SET (col1, col2) = ( SELECT col1, col2 from table2 WHERE table2.col1 = table1.col1 );
但是我得到了一个
syntax error at or near "SELECT"
LINE 1: UPDATE table1 SET (col1, col2) = ( SELECT col1, col2 f...
感谢任何帮助。
最佳答案
这应该有效:
update table1 t1
set col1 = t2.col1,
col2 = t2.col2
from table2 t2
where t1.col1 = t2.col1;
话虽如此,无需更新 col1 = t2.col1
,因为这是您的加入
标准。
关于sql - 使用 psycopg2 在 UPDATE SET 语句中更新超过 1 个 db 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19236060/