【发布时间】:2014-05-31 12:35:37
【问题描述】:
这里的总 SQL 新手。我创建了两个 SQL 表,一个包含有关酒店的信息,另一个包含有关景点的信息。
SELECT hotels.*, attractions.*,
((ACOS(SIN(hotels.Hotel_Lat * PI() / 180) * SIN(attractions.Attraction_Lat * PI() / 180) +
COS(hotels.Hotel_Long * PI() / 180) * COS(attractions.Attraction_Long * PI() / 180) *
COS((hotels.Hotel_Long - attractions.Attraction_Long) * PI() / 180)) *
180 / PI()) * 60 * 1.1515) as distance
FROM hotels join attractions
此查询返回“空”的距离。请问有什么想法吗?如果这有影响,我有负值经度?
【问题讨论】:
-
是的,但是哪个版本的 MySQL?工作台只是一个连接到 MySQL 的应用程序。
-
对不起,mysql 社区服务器版本 5.6.17。听起来对吗?
-
请编辑您的问题并显示您当前使用的查询。
-
请将 SQL 发布为纯文本,而不是图片链接。更好的是用示例数据制作一个 sqlfiddle。
-
您的距离公式看起来不正确。您正在计算正常的笛卡尔距离,而不是球体上的距离。见en.wikipedia.org/wiki/Geographical_distance