我有2个表,例如table1和table2。 table1具有列:id,status_new。 table2具有列:id,状态。例如,table1有1条记录,而table2有3条记录,如果我基于id加入这两个表,则该记录只有一条,但是如果我查询:
UPDATE epolicy.table2
SET status = 'COMPLETED'
FROM epolicy.table2 t2, epolicy.table1 t1
WHERE t1.status_new = 'Bounce' and t2.status = '' and t1.id = t2.id;
更新为“ COMPLETED”的记录为3行(表2中的所有记录)。为什么?因为加入表后,匹配记录仅1(基于ID)。供您参考,我使用的是postgresql。
谢谢。
答案 0 :(得分:1)
不要重复在FROM
中更新的表:
UPDATE epolicy.table2 t2
SET status = 'COMPLETED'
FROM epolicy.table1 t1
WHERE t1.status_new = 'Bounce' AND
t2.status = '' AND
t1.id = t2.id;
第二个引用导致cross join
,这不是您想要的。