这可能是一个非常简单的查询,但出于某种原因,我只是想不出来.. 我有一张有城市(城市)的桌子,我希望得到伦敦(cities.city_name ='London')和Dundee之间的距离。这是我的问题:
SELECT
cities.city_name, ST_Distance(cities.the_geom,cities.the_geom)
from cities
WHERE cities.city_name in ('London','Dundee')
结果是在两个城市的输出的ST_Distance字段中为0。 我知道我错过了什么,但我不知道是什么。我假设我必须为2个城市设置别名,但我不知道如何。
有人可以帮我解决这个问题吗?
提前感谢!!
答案 0 :(得分:1)
您正在比较查询中同一点之间的距离:
ST_Distance(cities.the_geom,cities.the_geom) --compares the same column in the list of the two cities:
CITY | GEOM | DISTANCE
-----------------------------------
London | GEOM1 | DISTANCE (GEOM1, GEOM1)
Dundee | GEOM2 | DISTANCE(GEOM2, GEOM2)
希望你能从上面的表格中看到我的观点
也许是这样的:
SELECT ST_Distance(
(SELECT the_geom FROM cities WHERE city_name ='London'),
(SELECT the_geom FROM cities WHERE city_name ='Dundee')
)