2011-05-15 73 views
1

我有兩個表。簡單的SQL請求問題

位置其中包含一些城市

POI包含POI列表具有唯一ID的緯度,經度和id

我想選擇一個半徑內的所有POI

SELECT location.id, longitude, latitude (6371 * acos(cos(radians(46.4166268823293)) * cos(radians(latitude)) * cos(radians(longitude) - radians(-1.5623357632014)) + sin(radians(46.4166268823293)) * sin(radians(latitude)))) AS distance 
FROM location,poi 
WHERE poi.id = location.id 
HAVING distance < 20 
ORDER BY distance LIMIT 0 , 20 

所以我選擇了我20公里範圍內的所有位置。該位置的ID鏈接到PO表的唯一ID,這就是爲什麼我試圖加入這兩個表

但是,連接似乎不起作用。當ni在phpMyAdmin上嘗試這個請求時,它只顯示id,longitute和ditue,但它沒有顯示POI表的字段(它裏面有..)

有人可以幫我嗎?謝謝

回答

1

您沒有選擇poi的任何字段。嘗試SELECT ... poi.* FROM ...

+0

就是這樣,愚蠢的我...... – Fazoulette 2011-05-15 14:26:54

0

這些是您的select子句中唯一的字段。如果你

SELECT POI.*,location.id, longitude, latitude 

你會看到更多的

0

但你不從POI選擇一個字段,你怎麼能指望這個領域是在結果集?

Select location.id, POI.Field-from-POI, longitude, latitude ...