要在更新语句中引用PostgreSQL文档:
“当存在FROM子句时,本质上是将目标表联接到from_list中提到的表,并且联接的每个输出行都代表目标表的更新操作。使用FROM时,您应该确保该联接为要修改的每一行最多产生一个输出行。”
我有两个问题:
非常感谢!
答案 0 :(得分:1)
“ join”是一个CROSS JOIN
,但是通常可以通过WHERE
子句中的条件来缓解这种情况:
update a
. . .
from b
where a.x = b.y; <-- turns this into an inner join
第二条语句只是条件要从a
开始仅一行,因此,如果b
(或FROM
子句中的任何表)中有重复的匹配项,在a
中找出如何将其减少为每行一个引用。