我是mysql和php的新手,我的查询有问题。我想得到我正在用Harversine公式计算的附近位置。这一切都有效,但现在我想展示与这些位置相关的特定商店。这是相关部分:
$query = sprintf("SELECT 'Location.id', latitude, longitude, ( 6371 * acos( cos( radians('%s') ) * cos( radians( latitude ) ) * cos( radians( longitude )
- radians('%s') ) + sin(radians('%s') ) * sin( radians( latitude ) ) ) ) AS distance
FROM(SELECT id, latitude, longitude FROM Location WHERE latitude Between '%s' AND '%s' AND longitude Between '%s' AND '%s') AS cut
JOIN Store ON 'Location.storeID' = 'Store.id'
WHERE 6371 * acos( cos( radians('%s') ) * cos( radians( latitude ) ) * cos( radians( longitude )
- radians('%s') ) + sin(radians('%s') ) * sin( radians( latitude ) ) ) < '%s' ORDER BY distance",
没有JOIN语句,这很好用。但是如果我使用JOIN语句,我会得到一个空数组。有谁知道为什么?声明可能在错误的地方吗? 这些是我的表格:
位置
商品
我会感谢任何帮助!