Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何从其他子查询中选择从字段别名派生的某些数据_Mysql - Fatal编程技术网

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