我创建了一个过滤器,用户可以在其中查找特定点的选定英里数内的位置,
我的代码如下,我在“左连接”附近不断收到 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
最佳答案
您的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
关于mysql - 尝试查找距离内的记录时 SQL 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48766480/