以下は、私のpostal
テーブルのレコード数です。実際、この表にはすべての都市とすべての郵便番号が含まれています。以下は郵便番号に基づいてレコードを選択し、その半径はMySQLで
id city postalcode latitude longitude
1 Drogteropslagen 7705 PA 52.61666700 6.50000000
2 Coevorden 7740 AA 52.66666700 6.75000000
3 Emmen 7812 TN 52.78333300 6.90000000
4 Emmer-Compascuum 7881 PZ 52.81666700 7.05000000
5 Nieuw-Dordrecht 7885 AA 52.75000000 6.96666700
それは郵便番号と、各企業が彼のサービスを提供することができるキロで、半径だと私company
テーブルです。
id company_name city postalcode radius latitude longitude
1 A Emmen 7812 TN 10 52.78333300 6.90000000
2 B Nieuw-Dordrecht 7885 AA 5 52.75000000 6.96666700
3 C Drogteropslagen 7705 PA 25 52.61666700 6.50000000
4 D Foxhol 9607 PR 0 53.16666700 6.71666700
5 E Westerbroek 9608 PA 15 53.18333300 6.68333300
私は特定の郵便番号などの会社を選択したいと思います。 7740 AA
は、郵便番号の領域に会社の半径を加えたものです。特定の郵便番号がcompany
テーブルに必ず存在するとは限りませんが、常にpostal
テーブルに存在することに注意してください。それらの企業を選択するSQLクエリを書く方法。
距離アルゴリズムで始める – Strawberry
@Strawberry彼は(スマートに)既に各社の緯度と経度をキャッシュしているため、アルゴリズムは必要ありません。代わりに、彼はHavesine式を使用して距離を決定することができます。 –
1つのステップのみからなるアルゴリズムを使用します。 – Strawberry