2011-05-15 64 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 ...