Ibrahim,
 
One of the problems is you probably have cases where the poi fall on a
boundary of a province and in those cases your original query will return
more than one record.
 
If you don't care which one, the easiest update statement to write is
 
UPDATE poi 

SET province_id = province.ogc_fid

FROM province

WHERE ST_Intersects(poi.the_geom, province.the_geom)

 

Leo


  _____  

From: postgis-users-boun...@postgis.refractions.net
[mailto:postgis-users-boun...@postgis.refractions.net] On Behalf Of ibrahim
saricicek
Sent: Tuesday, January 26, 2010 10:32 AM
To: PostGIS Users Discussion
Subject: Re: [postgis-users] update an st_intersects


Hi all again;

Sorry for mail traffic but i can't find a solution.

Select distinct works wrong. The row is updated with province.id randomly.

Isn't there any example of updating data with surrounding object details ???

Regards,
IBO...


On Tue, Jan 26, 2010 at 5:14 PM, Rafael Soto <rafael.s...@gmail.com> wrote:


Hey Ralf, this snippet is not true because one poi does not intersects more
than one province!
If you put DISTINCT you use a random logic 


On Tue, Jan 26, 2010 at 12:29 PM, Suhr, Ralf <ralf.s...@itc-halle.de> wrote:


 

UPDATE poi set province_id = sub.id

FROM

(

SELECT DISTINCT province.ogc_fid AS id

FROM province

WHERE ST_Intersects(poi.the_geom, province.the_geom)

) AS sub

WHERE province_id = sub.id

 

 

Gr 

Ralf

 

Von: postgis-users-boun...@postgis.refractions.net
[mailto:postgis-users-boun...@postgis.refractions.net] Im Auftrag von
ibrahim saricicek
Gesendet: Dienstag, 26. Januar 2010 15:11
An: PostGIS Users Discussion
Betreff: Re: [postgis-users] update an st_intersects

 

Hi all,

The same error

ERROR: more than one row returned by a subquery used as an expression

any comments?

On Tue, Jan 26, 2010 at 2:30 PM, Rafael Soto <rafael.s...@gmail.com> wrote:

Try it



update poi set province_id=(

select province.ogc_fid from province where intersects(poi.the_geom,
province.the_geom)=True group by province.ogc_fid
)

 

On Tue, Jan 26, 2010 at 10:26 AM, ibrahim saricicek
<ibrahimsarici...@gmail.com> wrote:

Hi all,

Thanks, understand.

Ok, is there another way to update poi's province.ogc_fid with the bounding
province's ogc_fid ???
Namely i want to learn the province of POI's...

Regards..





On Tue, Jan 26, 2010 at 2:20 PM, Rafael Soto <rafael.s...@gmail.com> wrote:

Hello my friend..

Your query is not wrong but your record true..

When you call a subselect to complete your UPDATE operation, this subselect
can be only one row in result return.
To correct this, you must be define one filter to decide what the result you
want to UPDATE.
To see the mistake, execute a subselect {{{ select  province.ogc_fid from
province,poi where intersects(poi.the_geom, province.the_geom)=True group by
province.ogc_fid }} and check the number of rows in the resultset.





On Tue, Jan 26, 2010 at 9:57 AM, ibrahim saricicek
<ibrahimsarici...@gmail.com> wrote:

 

Hi all,

I have two tables; provinces an points of interests. I wanna update
province_id column with st_intersects function..



My sql;

update poi set province_id=(

select province.ogc_fid from province,poi where intersects(poi.the_geom,
province.the_geom)=True group by province.ogc_fid
)

The message is 

ERROR: more than one row returned by a subquery used as an expression

What should I change? 

_______________________________________________
postgis-users mailing list
postgis-users@postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users




-- 
Rafael Soto


_______________________________________________
postgis-users mailing list
postgis-users@postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users

 


_______________________________________________
postgis-users mailing list
postgis-users@postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users




-- 
Rafael Soto

Sent from Brasilia, DF, Brazil

_______________________________________________
postgis-users mailing list
postgis-users@postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users

 


_______________________________________________
postgis-users mailing list
postgis-users@postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users






-- 
Rafael Soto
Sent from Brasilia, DF, Brazil


_______________________________________________
postgis-users mailing list
postgis-users@postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users




_______________________________________________
postgis-users mailing list
postgis-users@postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to