当我想根据表二中具有自己的 geo_lat 和 geo_long 的特定 city_id 从表一获取所有商店时,请告诉我如何连接两个表?我想获取距离我的商店 25 公里半径范围内的所有商店。
表一 - 商店: shop_name, shop description, town_id
表二——城市: city_id, city_name, geo_lat, geo_long
我尝试了很多例子和方法,但没有结果。
我找到了这个距离代码:
SELECT
id, (
3959 * acos (
cos ( radians(78.3232) )
* cos( radians( lat ) )
* cos( radians( lng ) - radians(65.3234) )
+ sin ( radians(78.3232) )
* sin( radians( lat ) )
)
) AS distance
FROM markers
HAVING distance < 30
ORDER BY distance
LIMIT 0 , 20;
我将非常感谢您的每一个回答。非常感谢。
最佳答案
select s.shop_name, s.shop_description, s.town_id, c.city_id, c.city_name, c.geo_lat, c.geo_long from shops s
right join cities c on c.city_id = s.town_id
and (
3959 * acos (
cos ( radians(78.3232) )
* cos( radians(c.geo_lat ) )
* cos( radians( c.geo_long ) - radians(65.3234) )
+ sin ( radians(78.3232) )
* sin( radians( c.geo_lat ) )
)
) <= 25
where c.city_name = 'Prague'
关于php - SQL Radius 在一个与另一个连接的表中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29750106/