PostGIS:计算一个点与2 fks之间的最小距离:起点和终点

|| 我有一个表
Transport
,其中有2个fks指向表
Spot
。这些fks存储运输工具的
origin
destination
。 我需要执行一个查询,以获取点与原点之间以及同一点与目标之间的最小距离。 这是我所做的,尽管这使我得到34个结果,应该为17。我知道我做错了,但是我无法正确查询:
SELECT LEAST(
   ST_Distance(ST_GeographyFromText(\'SRID=4326; POINT(-3 40)\'), s.point), 
   ST_Distance(ST_GeographyFromText(\'SRID=4326; POINT(-3 40)\'), s.point)
) FROM spot s RIGHT OUTER JOIN transport t 
ON t.origin = s.id OR t.destination = s.id;
显然,我不应该在这里使用OR。我尝试做两次JOIN,但没有正确执行。 谢谢你的帮助     
已邀请:
        您必须使用两个联接,因为查询需要一个表Spot(表示Origin)和一个表Spot(表示Destination)。 尝试这样:
SELECT LEAST(
   ST_Distance(ST_GeographyFromText(\'SRID=4326; POINT(-3 40)\'), sOrigin.point), 
   ST_Distance(ST_GeographyFromText(\'SRID=4326; POINT(-3 40)\'), sDestination.point)
) FROM transport t
LEFT OUTER JOIN spot sOrigin ON t.origin = sOrigin.id 
LEFT OUTER JOIN spot sDestination ON t.destination = sDestination.id;
    

要回复问题请先登录注册