繁体   English   中英

SQL选择基于子查询中的值

[英]SQL Select based on value from sub-query

我正在尝试根据另一个拥有我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

基本上,我想从用户那里获得所有列,并获得一个称为距离的列,该距离是具有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'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM