У меня есть таблица местоположений, и теперь я получил от провайдера новые местоположения.Мое требование - обновить те, которые одинаковы, и добавить / удалить того, для кого я не могу найти соответствие.Проблема в том, что в местах, где я получил адрес, есть различие, например, если родительский файл содержит st, новый файл содержит набор.поэтому я не могу сопоставить их по адресу и по широте и долготе.Моя стратегия - найти расстояние между всеми торговцами из таблицы A и таблицы B, кого бы я ни нашел, я обновлю.Но я изо всех сил пытаюсь написать запрос.Вот что у меня сейчас
SELECT
m.LocationID,
m.ID,
MIN(m.dist) AS D
FROM
(
SELECT tm.LocationID, pm.Id,
st_distancc(point(pm.Longitude, pm.Latitude ), point(
tm.Longitude,tm.Latitude))*0.00062137 AS dist
FROM parentlocation pm
JOIN tmplocation tm ON 1=1
) AS m
GROUP BY m.LocationID, m.Id;
Проблема в том, что запрос не фильтрует один в одном месте.Мы будем благодарны за любую помощь.
здесь приведены данные
Table A (Existing Table)
name Address ZipCode Latitue Longitude
A 123 test st 97845 42.30192580 -93.1720448
A 245 first st 78945 45.0130336 -93.1720448
A 789 second st 74521 42.6997965 -87.8487916
Table B (New data)
name Address ZipCode Latitue Longitude
A 123 test street 97845 42.30192577 -93.1720448
A 245 Third st 45612 49.0130336 -99.1720448
Итак, в конечном итоге я хочу, чтобы 123 тестовых уличных торговца были обновлены с новым адресом. 245 первый торговый агент был удален в том виде, в каком он есть.отсутствует во второй таблице 245 Третий st добавляется, так как это новый продавец
Единственное, что у меня есть, это широта и долгота, и поэтому я иду, если расстояние самое короткое, обновите его