Учитывая следующие таблицы:
table A (id, latitude, longitude)
table B (id, latitude, longitude)
как мне построить эффективный запрос T-SQL, который связывает каждую строку в A с ближайшей строкой в B?
ResultSet должен содержать все строки в A и свяжите их с 1 и только 1 элементом в B. Я ищу следующий формат:
(A.id, B.id, distanceAB)
У меня есть функция, которая вычисляет расстояние по двум парам широты и долготы. Я пробовал что-то, используя order by ... limit 1
и / или rank () over (partition by ...) as rowCount ..., где rowCount = 1
, но результат либо не совсем то, что мне нужно, либо возвращение занимает слишком много времени.
Я что-то упускаю?