如果在postgresql中执行更新操作的连接条件下有多个行匹配,那么期望的匹配是什么?

时间:2014-10-13 06:28:50

标签: sql postgresql

考虑这种查询:

UPDATE table1 SET attr1 = table2.attr1 FROM table2 WHERE table1.attr3 = table2.attr3

假设table2中有重复的attr3,因此有多个行与table1中的一行attr3匹配,哪一行的attr1将被指定为table1' s attr1?

我尝试使用订单,期望它会获得第一场比赛,但我发现在不同的实例中会选择不同的比赛。如果我没有明确说明方案,请告诉我是否应添加样本数据集。

1 个答案:

答案 0 :(得分:4)

阅读the manual总是有帮助的:

  

换句话说,目标行不应该从其他表连接到多个行。如果是,那么只有一个连接行将用于更新目标行,但将使用哪一个不容易预测

(强调我的)

所以你的问题的答案是:它是不可预测的