location_dataテーブル:SQLのSELECT文の値が存在する場合
id (pk)
lng
lat
voting_dataテーブル:
id (pk)
location_id (= location_data.id)
vote
これは私が自分の位置データを取得する必要があり、現在の短縮クエリがありますJSONにエンコードされます。
SELECT
`id`, `lat`, `lng`,
(6371 * acos(cos(radians('%s')) * cos(radians(lat)) *
cos(radians(lng) - radians('%s')) + sin(radians('%s')) *
sin(radians(lat)))) AS distance
FROM
location_data
HAVING
distance < 50
いくつかの場所は、(対応する位置に伴って一対の)私はJSONにもエンコードする追加の「投票データ」を有するが、それらが存在する場合にのみ(VoteData.LocationID = LocationData.ID)。
擬似コード:距離条件をすべてLocationData
を取得する - 特定の場所は(VoteData.LocationID = LocationData.ID)投票データを照合している場合、リストに追加> -
わからないJSON
へ>エンコードをどのように行うにはこれは...あらかじめありがとうございます。私は基本的には参加すると思う
票データを照合して、なぜそれもあなたがしたいクエリに影響を与えるでしょうか? –
MatchingはVoteData.LocationID = LocationData.IDを意味します。 1つのクエリでこれを行う方が簡単だと思いました。 – Vivida
どのDBMSを使用していますか? –