powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбора расстояния и id геоточки
7 сообщений из 7, страница 1 из 1
Выбора расстояния и id геоточки
    #39824485
bivilbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Есть две таблицы.
geo
id,name,latitude,longitude

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

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

Код: plsql
1.
2.
3.
UPDATE geotmp SET tmpdist=(SELECT (6371 * 
acos(cos(RADIANS(geotmp.latitudetxt)) *  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 найденной точки
Т.е. добавить
Код: sql
1.
,tmpid=geo.id


что-бы не делать второй запрос.
Спасибо!
...
Рейтинг: 0 / 0
Выбора расстояния и id геоточки
    #39824487
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bivilbi,

Можно попробовать через двух табличный апдейт
...
Рейтинг: 0 / 0
Выбора расстояния и id геоточки
    #39824489
bivilbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Спасибо.
Можно поподробнее?
...
Рейтинг: 0 / 0
Выбора расстояния и id геоточки
    #39824492
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя нет, LIMIT все портит, мысль ушла...
...
Рейтинг: 0 / 0
Выбора расстояния и id геоточки
    #39824501
bivilbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Вот второй запрос через php, который выцепляет id

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

Т.е. надо как то соединить в один запрос
...
Рейтинг: 0 / 0
Выбора расстояния и id геоточки
    #39824750
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UPDATE в MySQL не предусматривает показанного синтаксиса (UPDATE .. SET .. FROM ...).
Проверьте, как называется Ваш сервер и какую имеет версию.
...
Рейтинг: 0 / 0
Выбора расстояния и id геоточки
    #39825602
bivilbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

5.5.62-0 Mysql
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбора расстояния и id геоточки
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]