如何在mysql EDITED中隐藏别名列

时间:2014-06-25 04:54:02

标签: mysql sql

我知道这是已经提出的一些问题的复制品,但我需要一些建议。

我知道MySQL的基础知识,我有一个查询来计算纬度和经度之间的距离,并根据我返回id的最小距离。

现在我不想将距离列作为查询的结果。怎么做。

这是我的查询。

    select cl.wp_id,( 3959 * acos( cos( radians(12.91841) ) * cos( radians( y(gproperty) ) ) * 
       cos( radians( x(gproperty)) - radians(77.58631) ) + sin( radians(12.91841) ) * 
       sin( radians(y(gproperty) ) ) ) ) AS distance 
from db1.geofeature gf, db2.c_loc cl where gf.o_type = 10 and cl.c_info_id = 23 
    and gf.o_id = cl.wp_id 
    having distance < 10 order by distance limit 10;

我只想显示 cl.wp 作为结果。怎么做。?

修改 现在我有3个表如何加入它们。?

select dlo.id,( 3959 * acos( cos( radians(12.9) ) * cos( radians( y(gproperty) ) ) * cos( radians( x(gproperty)) - radians(77.5) ) +sin( radians(12.9) ) * sin( radians(y(gproperty) ) ) ) ) AS distance from db1.gfeature dgf, db2.loc dlo, db2.cust dcu where gf.o_type = 6 and dcu.id = 240 and dgf.o_id = dlo.p_id having distance < 20 order by distance limit 10;

欢迎任何建议。

1 个答案:

答案 0 :(得分:3)

您可能希望使用子查询:

select wp_id
from (select cl.wp_id,( 3959 * acos( cos( radians(12.91841) ) * cos( radians( y(gproperty) ) ) * 
             cos( radians( x(gproperty)) - radians(77.58631) ) + sin( radians(12.91841) ) * 
             sin( radians(y(gproperty) ) ) ) ) AS distance
      from db1.geofeature gf join
           db2.c_loc cl 
           on gf.o_type = 256 and cl.c_info_id = 146 and gf.o_id = cl.wp_id
    ) t
where distance < 10
order by distance
limit 10;

请注意,我还修复了连接语法以使用显式连接。