我有2個表如何獲得最小半徑位置
1. feeds => id,name 2. feed_locations => id, feed_id, latitude,longitude,location_name
的飼料有多個位置。
現在我想通過飼料從用戶當前位置附近搜索
我需要用戶的經緯度,所以我從谷歌位置和半徑取
現在我用這個MySQL查詢
SELECT
`Feed`.`id`,
`Feed`.`name`,
(3959 * acos (cos (radians(40.7127837)) * cos(radians(FeedLocation.latitude)) * cos(radians(FeedLocation.longitude) - radians(-74.00594130000002)) + sin (radians(40.7127837)) * sin(radians(FeedLocation.latitude)))) AS `distance`,
(Select COUNT(id) FROM feed_locations WHERE feed_id = `Feed`.`id`) AS `location_count` FROM `feeds` AS `Feed`
LEFT JOIN `feed_locations` AS `FeedLocation` ON (`FeedLocation`.`feed_id` = `Feed`.`id`)
GROUP BY `Feed`.`id` HAVING distance < 10
ORDER BY `distance` ASC
該查詢給我造成但
我需要feed_locations與用戶當前位置的最小距離。距離字段給我最高的價值,但我需要從feed_locations表中最低的價值。
我的查詢正在工作,但問題是:
就好像一個飼料有10個位置像1米,2米,3米,4米,5米,10米,100米的距離。我想找到5米距離的所有飼料然後它的作品,但它表明,這種飼料有5米。距離我的距離,但結果應該是1米的距離。
我創建了一個小提琴請http://sqlfiddle.com/#!9/c408e6/5
根據表1的結果搗鼓來了那FEED1是從我的當前位置4.02米但這種飼料在表2 2的位置,我有顯示每個位置的距離。所以FEED1的位置之一是零英里的距離,但我把它給結果FEED1是4.02英里
有沒有更新?問候 –
我會明天更新 –