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 |
このクエリを内部結合または左結合で使用する方法はありますか? また、最適な最適化のためにこれにアプローチする他の方法にもオープンです。