mysql - 组合来自单个表的两个 MySQL SELECT 查询

标签 mysql

我有这样的 SQL 语句:

SELECT 
(111.045 * DEGREES(ACOS(COS(RADIANS({$lat})) 
* COS(RADIANS(lat)) 
* COS(RADIANS({$lon}) - RADIANS(lon)) + SIN(RADIANS({$lat})) 
* SIN(RADIANS(lat))))) AS distance, 
(`f1` + `f2` + `f5` + `f6`) AS sum 
FROM `shops` 
WHERE distance <= 25

其中第一部分返回一定距离内的商店,第二部分返回同一表的同一行中给定字段的总和。

两个部分单独工作,但组合后不返回结果。

请告诉我我做错了什么?

最佳答案

不要在其中使用别名

SELECT 
(111.045 * DEGREES(ACOS(COS(RADIANS({$lat})) 
* COS(RADIANS(lat)) 
* COS(RADIANS({$lon}) - RADIANS(lon)) + SIN(RADIANS({$lat})) 
* SIN(RADIANS(lat))))) AS distance, 
(f1 + f2 + f5 + f6) AS sum 
FROM shops 
WHERE   (111.045 * DEGREES(ACOS(COS(RADIANS({$lat})) 
* COS(RADIANS(lat)) 
* COS(RADIANS({$lon}) - RADIANS(lon)) + SIN(RADIANS({$lat})) 
* SIN(RADIANS(lat))))) <= 25

关于mysql - 组合来自单个表的两个 MySQL SELECT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39085644/

相关文章:

MySQL 复制 : failover scenario

php - 托管站点发生错误

mysql - 如果没有时间戳列,如何确定MySQL InnoDB表是否已被修改,而不保留状态数据库?

php - 如何使用 php 从后端插入时检索图像

MySQL 连接 - 查询

mysql - 使用 select 命令更新 mysql 代码

MySQL 仅连接语句的一部分

sql - MySQL now() +1 天

MySQL更新相同!带子查询的表

mysql - 使用子查询是在不相关的表上使用 GROUP_CONCAT() 的最佳方法吗?