这是一个很难解释的问题。我能够找到 x 英里半径内的所有邮政编码。但是我想做的是从 tblUsers 中找到 MaxDistance <= x 邮政编码的所有用户 ID。
所以用简单的英语我想知道所有在邮政编码范围内的人MaxDistance
例如我有一张桌子:
tblUsers(ID int, Maxdistance int,Zipcode varchar(5)) 1|50|94129 2|25|94111 3|100|19019
在我的第二张桌子上:
tblTmpPlaces(ID int,Zipcode varchar(5)) 1|94129
我想要做的是使用 tblTmpPlaces 邮政编码,我希望能够说嘿用户 1 和 2 在他们的最大距离内并选择这些。但是,用户 3 的最大距离为 100,并且与 tblTmpPlaces 邮政编码 94129 的距离不够近。94129 是旧金山,19019 是费城。用户距离 San Fran 超过 100 英里。
这是我一直用来获取距离的方法,但它使用中心位置来查找区域内的所有内容,但它没有考虑 MaxDistance。任何帮助表示赞赏。
所以基本上select ID from tblUsers where
这是我绊倒的部分
SELECT Zipcode
FROM tblZipcodes
WHERE ( 3959
* acos(
cos(
radians(
@XLocationParam))
* cos(
radians(
x(location)))
* cos(
radians(
y(location))
- radians(
@YLocationParam))
+ sin(
radians(
@XLocationParam))
* sin(
radians(
x(location)))) <= 30))