Учитывая следующие таблицы:
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 ... where rowCount = 1
, но результат либо не совсем то, что мне нужно, либо слишком долго возвращается.
Я что-то упускаю?