SELECT table1.id, (SELECT MIN(SQRT( POW( 69.1 * ( latitude - table1.lat ) ,
2 ) + POW( 69.1 * ( table1.lon - longitude ) * COS( latitude / 57.3 ) , 2 )
)) from table2 limit 1) AS distance FROM table1
结果本身似乎是正确的,但我实际上希望查询根据计算的值返回table2.id。我怎样才能做到这一点?
table1 contains id, lat, lon
table2 contains id, latitude, longitude
我需要使用table2中的数据为table1中的每一行获取最小距离的ID(table2.id)。
答案 0 :(得分:0)
SELECT table1.id, (SELECT table2.id from table2 order by (SQRT( POW( 69.1 * (
latitude - table1.lat ) , 2 ) + POW( 69.1 * ( table1.lon - longitude ) * COS(
latitude / 57.3 ) , 2 ) )) limit 0,1 ) as table2_id FROM table1