这个很难解释,但基本上我想选择距离较小的情况。查询如下:

update point_a a
set c_id = (select b.otherid
from point_b b, line c
where a.pointid = c.lineconnecting_a_id
and (st_endpoint(c.geom) = b.geom or st_startpoint(c.geom) = b.geom order by distance limit 1

基本上在最后一条线上,我想用这条线来选择它连接到的点,我想要离原点更近的点。问题是,我的或,我得到2分,我不知道如何限制能够使用st U距离和选择一个最近的。
换言之,对于每一行,我需要根据它们到原点的距离来选择起点或终点

最佳答案

请发布有效的查询。和表定义。这也可以让你更容易理解你的问题
不管怎样,如果我正确地理解了你的问题,这应该有效(未经测试)

update point_a a
set c_id = (

  select  otherid
  from (
    select b.otherid, distance
    from point_b b, line c
    where a.pointid = c.lineconnecting_a_id
    and (st_endpoint(c.geom) = b.geom)
   UNION
    select b.otherid, distance
    from point_b b, line c
    where a.pointid = c.lineconnecting_a_id
    and (st_startpoint(c.geom) = b.geom)
  )
  order by distance limit 1
);

关于sql - 如何在postgresql中where条件的较低值之间进行选择?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47355554/

10-10 08:03