尝试查找距离内的记录时SQL语法出错

时间:2018-02-13 12:06:56

标签: mysql

我创建了一个过滤器,用户可以在特定点的指定英里数内找到位置,

我的代码如下,我在“左连接”

附近不断收到SQL语法错误

不确定错误是什么,如果有人可以帮助那将是王牌,或者只是指出我正确的方向!

 SELECT b.*, host,
      (6371 *
          acos(
              cos( radians( '51.514294' ) ) *
              cos( radians( `latitude` ) ) *
              cos(
                  radians( `longitude` ) - radians( '-0.042857' )
              ) +
              sin(radians('51.514294')) *
              sin(radians(`latitude`))
          )
      ) `distance`

       FROM brunches b HAVING
        `distance` < $range
      LEFT JOIN hosts ON hosts.id = b.hostid

1 个答案:

答案 0 :(得分:1)

你有一个错误位置的having子句(having子句不能放在from和join之间)

SELECT b.*, host,
      (6371 *
          acos(
              cos( radians( '51.514294' ) ) *
              cos( radians( `latitude` ) ) *
              cos(
                  radians( `longitude` ) - radians( '-0.042857' )
              ) +
              sin(radians('51.514294')) *
              sin(radians(`latitude`))
          )
      ) `distance`

      FROM brunches b
      LEFT JOIN hosts ON hosts.id = b.hostid
      HAVING  `distance` < $range