gpt4 book ai didi

mysql - SQL : Limit and Randomize results in join

转载 作者:行者123 更新时间:2023-11-30 23:23:26 25 4
gpt4 key购买 nike

我正在构建一个购物系统,可以在附近的地点寻找商品。基本上,每个 Location(供应商)在一个名为 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'

最佳答案

好的,这是基于假设的未经测试的版本。

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 (select *
from Item
order by RAND()
limit 5) as Item
ON Location.idLocation = Item.fidLocation
ORDER BY RAND()
HAVING distance < '1000'

关于mysql - SQL : Limit and Randomize results in join,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14488504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com