0
我有计算由坐标距离SQL查询数据库功能
CREATE OR REPLACE FUNCTION distance(lat1 FLOAT, lon1 FLOAT, lat2 FLOAT, lon2 FLOAT) RETURNS FLOAT AS $$
DECLARE
x float = 69.1 * (lat2 - lat1);
y float = 69.1 * (lon2 - lon1) * cos(lat1/57.3);
BEGIN
RETURN sqrt(x * x + y * y);
END
$$ LANGUAGE plpgsql;
现在我有2张表(具有以一对一的关系)与列一个称为
人数据库功能 - > PERSONID,名字,姓氏
和一个
位置与列 - > Personid,纬度,经度。
现在我尝试使用distnace功能
我开始与这个下面的查询来获取ID第一
select loc.id,loc.latitude,loc.longitude from location loc
where distance(123,456,loc.latitude,loc.longitude)<0.5
获得该距离小于5的人,但不知道如何从上述查询中获得所有具有该ID的人员。
我该怎么做? 在此先感谢。
daaaaam你好谢谢:-) – user986474 2012-04-05 21:44:56
这是非常基本的!阅读:http://www.postgresql.org/docs/8.3/static/tutorial-join.html – barsju 2012-04-05 21:50:14