给定下表:
table A (id, latitude, longitude)
table B (id, latitude, longitude)
如何构建一个高效的 T-SQL 查询,将 A 中的每一行与 B 中最近的行相关联?
ResultSet 应该包含 A 中的所有行,并将它们与 B 中的 1 个且只有 1 个元素相关联。我正在寻找的格式如下:
(A.id, B.id, distanceAB)
我有一个函数可以计算给定 2 对纬度和经度的距离。我尝试了一些使用order by ... limit 1
和/或的东西,rank() over (partition by ...) as rowCount ... where rowCount = 1
但结果要么不是我真正需要的,要么需要很长时间才能返回。
我错过了什么吗?