在 FROM 子句中引用别名为表的其他 SQL SELECT 语句
Posted
技术标签:
【中文标题】在 FROM 子句中引用别名为表的其他 SQL SELECT 语句【英文标题】:Refer to other SQL SELECT statements aliased as tables in FROM clause 【发布时间】:2009-04-14 12:49:58 【问题描述】:我有一个非常大的查询,格式如下:
select ...
from ( select field1,
field2
from some_table ) table1,
( select field1,
field3
from other_table ) table2
where .....
我是否可以在 from 子句中的其他表定义之一中引用 from 子句中“定义”的表之一,比如说 table1?
例如:
select ....
from ( select field1,
field2
from some_table ) table1,
( select table1.field1,
field3
from other_table,
table1 ) table2
where .....
免责声明:我想做的并不像上面的例子那么简单。这个例子只是为了说明这个想法。
【问题讨论】:
这并不是您问题的真正答案,但您的问题涉及的一些问题可能可以通过使用视图来解决。 【参考方案1】:WITH
table1 AS
(
SELECT field1, field2
FROM some_table
),
table2 AS
(
SELECT field1, field2
FROM other_table, table1
)
SELECT *
FROM table2
【讨论】:
【参考方案2】:如果您使用的是 SQL 2005,则可以使用公用表表达式来执行您正在尝试的操作; Quassnoi 给我们举了一个例子,在 Oracle 中我不知道如何实现它
【讨论】:
在 Oracle 中,别名位于查询之前。以上是关于在 FROM 子句中引用别名为表的其他 SQL SELECT 语句的主要内容,如果未能解决你的问题,请参考以下文章