场景:我有一个数据库,有三个表,用户,位置,库存;
在我拥有的用户中:id, name, email
在我拥有的位置内:id, place, lati, logi
我有库存:id, user_id, product, total_count, location_id
我是一个相当新的人,我设法加入了所有的表格:
$qry = "
SELECT COUNT(id)
FROM stock
LEFT
JOIN users
ON stock.user_id= users.id
LEFT
JOIN locations
ON stock.location_id= locations.id ";
但我希望能做的是使用lati和logi按距离排序。例如,我想要25英里以内的所有东西,从最近到最远排序。
在给出场景的情况下,我该如何做到这一点?
我在谷歌上搜索了一下,但我找到的所有东西都向我展示了如何获得两点之间的距离,但我希望能够使用一组点,并获得X英里内的所有东西?
不确定这一切是否合理?
我在应用程序中提出了以下简化的计算公式:
pow(CentralLati - LatitudeofCircle, 2) +
pow(CentralLongi - LongitudeofCircle, 2) <= 4
其中,
CentralLati,CentralLongi=>点a 的坐标
纬度圆,经度圆=>A点周围25km点的坐标。
您可以调整以上公式以匹配数据库命名约定。
希望我能正确理解你的要求。