Добрый день.
Есть две таблицы.
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
Как можно объединить в один запрос?
Спасибо!