php - SQL Radius 在一个与另一个连接的表中搜索

标签 php mysql database

当我想根据表二中具有自己的 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/

相关文章:

python - MySQL 触发器到 RabbitMQ

mysql - 我在 coldfusion 中的搜索表单的 SQL 搜索查询

PHPExcel 获取数据库字段名称到导出的 Excel

r - 如何使用另一列前 3 行的平均值填充新列?在 R

java - 开源类似 gravatar 的实现?

带有/distinct 和其他参数的 PHP/MySQLi 查询

php - 我如何 preg_match 多个单词

PHP 从 MySQL 查询结果中获取行 'id'

mysql - 跳过所有数据库,只运行特定的一个

database - 使用 sql 文件填充 ms sql