MySQL 如何重用 select 列别名,当我为子查询设置别名时?
MySQL how to reuse select column aliase, when I aliase subquery?
我有类似的东西:
Select1 ...
,(fieldA - fieldB) AS Y,
,(Select2
(Select3 percent
From ...
Join....
Where ...
Order by some_date
Limit 1) AS X
From ...
Join...
Where ...
Order by some_date2
Limit 1) AS X
,(X * Y) AS output
From ...
Join ...
Join ...
- 是的,我将 Select 嵌套在 Select 内 Select 内 - 每个都使用上一层的值(没有外层它们将无法工作!)
使用 - Select 是因为我需要在每个 select
中的 "date nearest to given but not newer" 之后进行过滤
- 如您所见,我重复使用了嵌套 Select 中返回的结果两次
- 现在我将嵌套的 Select 复制到我在上面的伪代码中写 X 的地方
一切正常,直到我需要重用嵌套 select 返回的值。
如何在 "output" 列的定义中重复使用 X 别名?
PS 不会像现在的 A4 那样过去的代码!它按预期工作,但很难看。
您可以再次使用另一个嵌套 SELECT
来完成此操作。这个新的最外层 SELECT
然后可以访问 X
和 Y
.
Select0
...
,(X * Y) AS output
From (
Select1 ...
,(fieldA - fieldB) AS Y,
,(Select2
(Select3 percent
From ...
Join....
Where ...
Order by some_date
Limit 1) AS X
From ...
Join...
Where ...
Order by some_date2
Limit 1) AS X
From ...
Join ...
Join ...) AS values
我有类似的东西:
Select1 ...
,(fieldA - fieldB) AS Y,
,(Select2
(Select3 percent
From ...
Join....
Where ...
Order by some_date
Limit 1) AS X
From ...
Join...
Where ...
Order by some_date2
Limit 1) AS X
,(X * Y) AS output
From ...
Join ...
Join ...
- 是的,我将 Select 嵌套在 Select 内 Select 内 - 每个都使用上一层的值(没有外层它们将无法工作!) 使用
- Select 是因为我需要在每个 select 中的 "date nearest to given but not newer" 之后进行过滤
- 如您所见,我重复使用了嵌套 Select 中返回的结果两次
- 现在我将嵌套的 Select 复制到我在上面的伪代码中写 X 的地方
一切正常,直到我需要重用嵌套 select 返回的值。
如何在 "output" 列的定义中重复使用 X 别名?
PS 不会像现在的 A4 那样过去的代码!它按预期工作,但很难看。
您可以再次使用另一个嵌套 SELECT
来完成此操作。这个新的最外层 SELECT
然后可以访问 X
和 Y
.
Select0
...
,(X * Y) AS output
From (
Select1 ...
,(fieldA - fieldB) AS Y,
,(Select2
(Select3 percent
From ...
Join....
Where ...
Order by some_date
Limit 1) AS X
From ...
Join...
Where ...
Order by some_date2
Limit 1) AS X
From ...
Join ...
Join ...) AS values