【发布时间】:2012-02-15 09:46:38
【问题描述】:
给定以下表格:
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 尝试了一些东西,但结果要么不是我真正需要的,要么需要很长时间才能返回。
我错过了什么吗?
【问题讨论】:
标签: sql tsql join distance haversine