我有这个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));
我以米为单位输入Lat,Long和radius。然后输出是标题和日期时间,但我还需要使用id从另一个表中获取用户名。
表格是:
位置
| Title | DateTime | UserID |
用户
| UserID | Username |
无论如何使用内部加入或左连接的查询?我也愿意采用其他方式来实现最佳优化。
答案 0 :(得分: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
答案 1 :(得分:0)
您可以使用内部联接:
select l.title, l.datetime, u.username
from location l inner join users u on l.userid = u.userid