我正在尝试根据具有ID的其他用户的经度和纬度选择一组用户。我需要在查询的SELECT语句中进行距离计算,并且不确定如何访问要搜索的用户的经度和纬度。
到目前为止,这是我的查询(无效)
SELECT
*,
(SELECT u1.latitude, u1.longitude
FROM user u1
WHERE u1.id = '77c3d4e0-37f6-4fae-b8ac-66cffad07179'),
(3959 * acos(cos(radians(u1.latitude))
* cos(radians(latitude))
* cos(radians(longitude) - radians(u1.longitude))
+ sin (radians(u1.latitude))
* sin(radians(latitude)))) AS distance
FROM
user u2
Run Code Online (Sandbox Code Playgroud)
基本上,我想从用户那里获取所有列,并获取一个称为距离的列,该距离是具有ID的用户的距离
将子查询引用移至该from子句:
SELECT u2.*,
(3959 * acos (
cos ( radians(u1.latitude) )
* cos( radians( u2.latitude ) )
* cos( radians( u2.longitude ) - radians(u1.longitude) )
+ sin ( radians(u1.latitude) )
* sin( radians( u2.latitude ) )
)
) AS distance
FROM icebreaker_user u2 JOIN
icebreaker_user u1
ON u1.id = '77c3d4e0-37f6-4fae-b8ac-66cffad07179'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41 次 |
| 最近记录: |