【发布时间】:2017-06-10 06:42:53
【问题描述】:
更新:
如何在派生表中引入下面的查询
( 3959 * acos( cos( 弧度(36.247137) ) * cos( 弧度(cm.lat ) ) * cos( 弧度(cm.lng ) - 弧度(-115.221032) ) + sin(弧度(36.247137))* sin(弧度(cm.lat))))AS距离
在这个 MySql 查询中:
MySql 查询:
SELECT ( 3959 * acos( cos( radians(36.247137) ) * cos( radians( `cm`.`lat` ) ) * cos( radians(`cm`.`lng` ) - radians(-115.221032) ) + sin( radians(36.247137) ) * sin( radians( `cm`.`lat` ) ) ) ) AS distance, min(pl.price_pure) as minPrice, max(pl.price_pure) as maxPrice, min(pl.`squarefeet_pure`) as minSquare, max(pl.`squarefeet_pure`) as maxsquare FROM `plans` pl INNER JOIN property pr ON pr.id = pl.property_id INNER JOIN communities cm ON cm.id = pr.community_id Having distance < 20 order by pl.price_pure, pl.squarefeet_pure
.................................................. .............................
上一个查询标题是: 为什么在MySql查询中应用Max, MIN价格公式没有结果
详细问题:
http://pastebin.com/UR48mbtq 这是我的 mysql 查询 .. 我想获得低于 20 英里距离的房屋的最高和最低价格.. 但结果为空。示例中的距离是 20,但我的数据库也有 20 英里和 20 英里以下的结果
MySql 查询:
SELECT ( 3959 * acos( cos( radians(36.247137) ) * cos( radians( `cm`.`lat` ) ) * cos( radians(`cm`.`lng` ) - radians(-115.221032) ) + sin( radians(36.247137) ) * sin( radians( `cm`.`lat` ) ) ) ) AS distance, min(pl.price_pure) as minPrice, max(pl.price_pure) as maxPrice, min(pl.`squarefeet_pure`) as minSquare, max(pl.`squarefeet_pure`) as maxsquare FROM `plans` pl INNER JOIN property pr ON pr.id = pl.property_id INNER JOIN communities cm ON cm.id = pr.community_id Having distance < 20 order by pl.price_pure, pl.squarefeet_pure
有了这个结果:
distance minPrice maxPrice minSquare maxsquare
1754.3401139613718 0 21000003 0 8607
但是当我添加 Have 子句时,结果为空,下面的查询
SELECT ( 3959 * acos( cos( radians(36.247137) ) * cos( radians( `cm`.`lat` ) ) * cos( radians(`cm`.`lng` ) - radians(-115.221032) ) + sin( radians(36.247137) ) * sin( radians( `cm`.`lat` ) ) ) ) AS distance, (pl.price_pure) as minPrice, (pl.price_pure) as maxPrice, (pl.`squarefeet_pure`) as minSquare, (pl.`squarefeet_pure`) as maxsquare FROM `plans` pl INNER JOIN property pr ON pr.id = pl.property_id INNER JOIN communities cm ON cm.id = pr.community_id Having distance < 20 order by pl.price_pure, pl.squarefeet_pure
更新: 如果我从查询中删除最大、最小公式,那么它也会给我 400 个结果..
【问题讨论】:
-
而不是你可以试试 where 吗?
-
@krishnpatel 它的虚拟领域和我不能在这里应用的东西。我以前也试过。
-
CAST(Distansc login AS UNSIGNED) AS 距离。你能试试吗
-
距离 > 来获取这些数据
-
@krishnpatel 我想找到最多 20 英里的结果.. 不应该超过 20 英里..
标签: mysql distance latitude-longitude