Mysql 如何从其他子查询中选择从字段别名派生的某些数据
我有一个具有以下结构的查询:Mysql 如何从其他子查询中选择从字段别名派生的某些数据,mysql,Mysql,我有一个具有以下结构的查询: SELECT *, (<sub-query>) AS `n_acts`, (<sub-query>) AS `n_ops`, `n_acts`/`n_ops` AS `score` FROM `user` WHERE `type` = '3' 为什么MySQL不能识别我的字段别名?我如何解决这个问题?最重要的是,建议这样做吗?试试这个 SELECT `inner_sub`.`n_acts`, `inner_sub`.
SELECT *,
(<sub-query>) AS `n_acts`,
(<sub-query>) AS `n_ops`,
`n_acts`/`n_ops` AS `score`
FROM `user`
WHERE `type` = '3'
为什么MySQL不能识别我的字段别名?我如何解决这个问题?最重要的是,建议这样做吗?试试这个
SELECT `inner_sub`.`n_acts`, `inner_sub`.`n_ops`, `inner_sub`.`n_acts`/`inner_sub`.`n_ops` AS `score`
FROM
(SELECT *,
(<sub-query>) AS `n_acts`,
(<sub-query>) AS `n_ops`
FROM `user`
WHERE `type` = '3') AS `inner_sub`
ORDER BY `inner_sub`.`score` DESC
LIMIT 10
在获得所有通过WHERE条件的行之后,DBMS尝试将每一行独立地投影到关键字“SELECT”后面提到的“fields”集合中,集合中的元素“fields”之间不能有任何关联。这就是我对流程的理解。
SELECT `inner_sub`.`n_acts`, `inner_sub`.`n_ops`, `inner_sub`.`n_acts`/`inner_sub`.`n_ops` AS `score`
FROM
(SELECT *,
(<sub-query>) AS `n_acts`,
(<sub-query>) AS `n_ops`
FROM `user`
WHERE `type` = '3') AS `inner_sub`
ORDER BY `inner_sub`.`score` DESC
LIMIT 10