1

我有这个 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 |

无论如何如何将此查询与内部联接或左联接一起使用?我也愿意接受其他方法来实现最佳优化。

4

2 回答 2

1
select title, datetime, username
from location, users
where location.userid = users.userid  

或者

select title, datetime, username
from location
join users
on location.userid = users.userid
于 2013-02-03T15:52:50.913 回答
0

您可以使用内部联接:

select l.title, l.datetime, u.username
from location l inner join users u on l.userid = u.userid
于 2013-02-03T16:04:18.943 回答