【问题标题】:Refer to other SQL SELECT statements aliased as tables in FROM clause在 FROM 子句中引用别名为表的其他 SQL SELECT 语句
【发布时间】: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 .....

免责声明:我想做的并不像上面的例子那么简单。这个例子只是为了说明这个想法。

【问题讨论】:

  • 这并不是您问题的真正答案,但您的问题涉及的一些问题可能可以通过使用视图来解决。

标签: sql oracle


【解决方案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 中,别名位于查询之前。
    猜你喜欢
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多