1

Lat と Long を中心位置として使用して検索半径を実行するこの mysql クエリがあります。

$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 に答える