@dedulka

Как сделать выборку расстояния и id геоточки?

Добрый день.
Есть две таблицы.
geo
id,name,latitude,longitude

geotmp
id,idtmp,latitude,longitude,tmpdist,tmpid

для поиска ближайшей точки из geotmp в geo делаю

UPDATE geotmp SET tmpdist=(SELECT (6371 * 
acos(cos(RADIANS(geotmp.latitude)) *  cos(radians(latitude)) *  cos(radians(longitude) -  RADIANS(geotmp.longitude)) +  
sin(RADIANS(geotmp.latitude)) *   sin(radians(latitude))))   AS distance FROM geo  HAVING DISTANCE < 0.5 ORDER BY distance ASC LIMIT 1);


Т.е. запросом обновляю расстояние в geotmp.
А как в этот запрос добавить id найденной точки
Т.е. добавить

,tmpid=geo.id
что-бы не делать второй запрос.
Сейчас на php делаю так-

SELECT *, 
(6371 * 
acos( 
cos(radians(".$latitude.")) * 
cos(radians(latitude)) * 
cos(radians(longitude) - 
radians(".$longitude.")) + 
sin(radians(".$latitude.")) * 
sin(radians(latitude)))) 
AS distance FROM geo 
HAVING distance <= 1 ORDER BY distance ASC limit 1


Как можно объединить в один запрос?

Спасибо!
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы