我有这个 mysql 查询使用 Lat 和 Long 作为中心位置进行搜索半径:
$query = sprintf("SELECT Title, DateTime, ( 6371393 * acos( cos( radians('%s') ) * cos( radians( Lat ) ) * cos( radians( Lon ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( Lat ) ) ) ) AS distance FROM Locations HAVING distance < '%s' ORDER BY distance",
mysql_real_escape_string($center_lat),
mysql_real_escape_string($center_lng),
mysql_real_escape_string($center_lat),
mysql_real_escape_string($radius));
我以米为单位输入纬度、经度和半径。然后输出是标题和日期时间,但我还需要使用 id 从另一个表中获取用户名。
这些表是:
地点
| Title | DateTime | UserID |
用户
| UserID | Username |
无论如何如何将此查询与内部联接或左联接一起使用?我也愿意接受其他方法来实现最佳优化。