我有通过坐标计算距离的数据库函数
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, name, lastname
和一个
带有列的位置--> Personid、纬度、经度。
现在我尝试使用 distnace 函数让距离小于 5 的人
我从以下查询开始首先获取 id
select loc.id,loc.latitude,loc.longitude from location loc
where distance(123,456,loc.latitude,loc.longitude)<0.5
但不知道如何从上述查询中获取具有 id 的所有人。
我怎样才能做到这一点?提前致谢。