gpt4 book ai didi

python - PostGresQL 根据另一个表中的 ID 列表或主键更新值

转载 作者:行者123 更新时间:2023-11-29 13:27:00 25 4
gpt4 key购买 nike

我有一个 ID 列表 [1,5,8,...]。我还有一个包含 100 行的表 (TableA)(与我的 ID 列表完全匹配)。我有另一个表 (TableB),它有很多行 (2000),我想根据主键是否存在于 TableA 的主键(或我的 python ID 列表 - 这是相同的)来更新一列(真/假) ).

目前我循环遍历我的 ID 列表,只做一个简单的更新语句(下面是 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_List 中的所有行都会快速更新。我不能使用“>”或“<”,因为 ID 可能不会全部大于或小于特定数字。我可能想更改 ID (3,6,9) 而不是 (4,7,8)。

最佳答案

你可以尝试这样的事情:

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

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com