2013-02-03 18 views
1

加入我有這樣的MySQL查詢使用緯度和龍爲中心位置做一個搜索半徑:使用內使用MySQL Lat Long網查詢在PHP

$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 | 

反正是有關於如何使用此查詢與內部聯接或左加入?我也接受其他方法來解決這個問題,以獲得最佳優化。

回答

0

您可以使用內部聯接:

select l.title, l.datetime, u.username 
from location l inner join users u on l.userid = u.userid 
+0

我已經試過,但後來我意識到,列獲得距離有緯度和經度,而不是l.Lat &l.Lon。感謝壽 – SReca

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