这个很难解释,但基本上我想选择距离较小的情况。查询如下:
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/