我想要更新状态列,其中id表1 = id表2并且status =''
table1
===========================
id | delivery_status | name
===========================
table2
=============
id | status |
=============
表1上的交货状态和表2上的状态是不同的情况。
我只有1行匹配(id表1 = id表2),而2行没有匹配。如果我查询:
UPDATE myschema.table1
SET status = 'COMPLETED'
FROM myschema.table1 t1, myschema.table2 t2
WHERE t2.delivery_status = 'B' and t1.status = '' and t1.id = t2.id;
如果选择此选项,结果将有1行,但是当我执行此更新查询时,有3行将更新为COMPLETED
。如何解决这个问题?我只想更新一行。我已经添加了条件t1.id = t2.id
。表1和表2上的ID仅匹配一行。
答案 0 :(得分:1)
仅包含要更新一次的表
UPDATE myschema.table1
SET status = 'COMPLETED'
FROM myschema.table2 t2
WHERE t2.delivery_status = 'B' and table1.status = '' and table1.id = t2.id;