我在postgis中有一两个桌子。一个是Bank(即点),另一个是IndiaState(是多边形)。这两个表都有一个名为State的列。对于Bank state列为空,而IndiaState表中的state列具有州名。我想使用ST_Intersects填充Bank表中的状态列。我可以选择属于特定状态的银行积分
select ST_Intersection("IndiaState".geom, TN_Bank.geom) as inter
"Bank_Name", "Lat"
from "IndiaState" INNER JOIN TN_Bank ON ST_Intersects("IndiaState".geom, TN_Bank.geom)
where "IndiaState".state='KERALA'
Run Code Online (Sandbox Code Playgroud)
上面的sql返回正确的66行。
但是更新命令无法正常工作
update TN_Bank set "State"='KERALA' from
(select ST_Intersection("IndiaState".geom, TN_Bank.geom) as inter
"Bank_Name", "Lat"
from "IndiaState" INNER JOIN TN_Bank ON ST_Intersects("IndiaState".geom, TN_Bank.geom)
where "IndiaState".state='KERALA')x
Run Code Online (Sandbox Code Playgroud)
它正在更新Bank表中的所有行。请帮助。