私はテーブルの場所を持っています
place_id | city | country_code | zipcode | lat | lon
ここで、場所Aから25マイル以内にある場所を表示したいと思います。場所Aにはplace_id1があります。
SELECT *
FROM `places`
WHERE ( 3959 * acos( cos( radians((SELECT lat FROM places WHERE place_id=1)) ) * cos( radians( lat ) ) * cos( radians( lon ) - radians((SELECT lon FROM places WHERE place_id=1)) ) + sin( radians((SELECT lat FROM places WHERE place_id=1)) ) * sin( radians( lat ) ) ) ) < 25;
これは問題なく動作しますが、同じサブクエリが2つあります
SELECT lat FROM places WHERE place_id=1
このクエリを最適化して、2つの同じサブクエリを持たずに、それらを1つにすることは可能ですか?