Sql 更新查询联接表

Sql 更新查询联接表,sql,postgresql,inner-join,Sql,Postgresql,Inner Join,我想要更新状态列,其中id table 1=id table 2,status='' 表1和表2上的交付状态是不同的情况 我只有一行匹配(id表1=id表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 = t

我想要更新状态列,其中id table 1=id table 2,status=''

表1和表2上的交付状态是不同的情况

我只有一行匹配(id表1=id表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行更新为
已完成
。如何解决这个问题?我只想更新一行。我已经添加了条件
t1.id=t2.id
。表1和表2上的id仅匹配一行。

仅包括要更新一次的表

UPDATE myschema.table1
SET status = 'COMPLETED'
FROM myschema.table2 t2
WHERE t2.delivery_status = 'B' and table1.status = '' and table1.id = t2.id;
UPDATE myschema.table1
SET status = 'COMPLETED'
FROM myschema.table2 t2
WHERE t2.delivery_status = 'B' and table1.status = '' and table1.id = t2.id;