给定以下表格:
table A (id, latitude, longitude)
table B (id, latitude, longitude)
如何构建一个高效的T-SQL查询,将A中的每一行与B中最接近的一行关联起来?
结果集应该包含A中的所有行,并将它们与B中的1个且仅有1个元素关联起来。我要求的格式如下:
(A.id, B.id, distanceAB)
我有一个函数,可以计算给定两个纬度和经度对之间的距离。我尝试使用order by ... limit 1
和/或rank() over (partition by ...) as rowCount ... where rowCount = 1
,但结果要么不是我需要的,要么返回时间太长。
我是否遗漏了什么?