我正在构建一个购物系统,可以在附近位置查找商品。基本上,每个位置(供应商)在一个名为 Location 的表中都有一个条目,其中包含名称、纬度、经度和其他列......然后有一个项目表,带有一个外键,用于标识项目所属的位置至。
基本上,我想找到用户附近的所有项目:我可以使用以下查询来完成:
但是我想做以下事情 - 随机选择该位置的项目 - 将每个位置的项目数量限制为几个(比如 5 个) - 随机化所有结果,以便它们不会按位置分组
到目前为止,这是我已经完成的必须困难的查询,我正在变得更好,但我非常坚持这个 - 如果非常感谢任何帮助!谢谢你!!
到目前为止,这是我的选择声明:
SELECT Location.idLocation
, Location.locationName
, Location.tagline
, Location.tags
, Location.shortAddress
, (3959 * acos(cos(radians('40.181')) * cos(radians(Location.latitude)) * cos(radians(Location.longitude) - radians('-74.0265')) + sin(radians('40.181')) * sin(radians(Location.latitude)))) AS distance
, Item.idItem
, Item.dateAdded
, Item.fidLocation
, Item.itemName
, Item.description
, Item.fullImageName
, Item.thumbnailImageName
FROM
Location
INNER JOIN Item
ON Location.idLocation = Item.fidLocation
HAVING distance < '1000'