我有一份身份证清单[1,5,8,…]。我还有一个表(table a),它有100行(与我的id列表完全匹配)。我还有另一个表(Table),它有大量的行(2000),我想更新一个列(true /false),如果主键存在于TabLeA的主键(或我的Python ID列表中),则相同。
目前,我循环查看我的id列表,只需执行一个简单的update语句(下面是python代码):

for id in ID_List:
     cur.execute('update TableB set "Column1"=%s where "ID"=%s', (False,id))

这工作得很好,但我很好奇是否有一个单行代码我可以使用,而不是一个循环。类似于:
cur.execute('update TableB set "Column1"=False where "ID" in ID_List')
or
cur.execute('update TableB set "Column1"=False where "ID" in TableA.keys()'

并且ID_列表中的所有行都将快速更新。我不能使用“>”或“

最佳答案

你可以试试这样的:

update TableB set "Column1"=False where TableB."ID" in (select TableA."ID" from TableA)

关于python - 基于另一个表中的ID或主键列表的PostGresQL更新值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31991404/

10-11 04:04
查看更多