【发布时间】:2011-06-15 08:10:52
【问题描述】:
我有一个表 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。我试图做双重连接,但没有做对。
感谢您的帮助
【问题讨论】:
标签: sql postgresql postgis