gpt4 book ai didi

mysql - 来自子查询的数据可以在外部查询中使用吗?

转载 作者:行者123 更新时间:2023-11-29 04:46:34 25 4
gpt4 key购买 nike

抱歉问题标题不好,我不确定我想做的事情是否有名字。

我想进行如下查询:

SELECT a, b, c, (d + e - f) as computedValue,

(SELECT SUM(column1) FROM table2) as d,
(SELECT SUM(column2) FROM table3) as e,
(SELECT SUM(column3) FROM table4) as f,

FROM table1
WHERE a = 1

所以,换句话说,我想使用从子查询返回的整数值来计算一个值。我可以在 PHP 中这样做:

$computedValue = $row['d'] + $row['e'] - $row['f'];

但我想知道是否可以在查询本身中执行此操作?

当我尝试时出现以下错误:

Error!: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'd' in 'field list'

最佳答案

您不能在同一查询的大多数子句中使用列别名,包括在选择列表中。
对于许多 SQL 开发人员来说,这似乎令人费解,但这是标准的 SQL。

但是您可以像这样使用派生表子查询:

SELECT *, (d + e - f) as computedValue 
FROM (
SELECT a, b, c,
(SELECT SUM(column1) FROM table2) as d,
(SELECT SUM(column2) FROM table3) as e,
(SELECT SUM(column3) FROM table4) as f
FROM table1
WHERE a = 1
) AS x;

关于mysql - 来自子查询的数据可以在外部查询中使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18156628/

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