当前位置: 首页 > 知识库问答 >
问题:

在子查询Oracle中无法识别表别名

仲和韵
2023-03-14

我有一个带有左连接的SELECT语句,连接的表是子查询。Oracle无法识别第二个子查询中第一个子查询的别名。它适用于DB2,但不适用于Oracle。我如何实现它或重写我的查询?

SELECT *                  
 FROM                                                      
 (SELECT     E.C3 AS  COLUMN3        
    , E.C4 AS  COLUMN4        
   FROM TBL_1 D                            
    , TBL_2 E                            
WHERE D.C6  =  E.C6 ) B                                                              
LEFT  JOIN  TABLE   
(SELECT  C.C1                          
 FROM    TBL_3  C                   
 WHERE                                                  
 C.C7            = 'hello'      
 AND B.C3            = C.C8                            
UNION ALL                                                 
 SELECT  C.C1                          
    FROM    TBL_3  C                
    WHERE                                               
    C.C7          = 'world'      
    AND B.C4          =  C.C8                       
    )            A               
ON 1 = 1

Oracle错误消息:ORA-00904:“B”。“C3”:无效标识符

共有2个答案

宋高谊
2023-03-14

你有一个语法错误。这个:

select * from (select col1 from tbl_Ajoin) A
left join table (select col2 from tbl_Bjoin where A.col1 = tbl_Bjoin.col1) B     
ON 1 = 1

应该是这样的:

select * from (select col1 from tbl_Ajoin) A
left join (select col2 from tbl_Bjoin where A.col1 = tbl_Bjoin.col1) B     
ON 1 = 1

或者更具体地说

left join table (select

不应该有单词。应该是这样的:

left join (select
孔光赫
2023-03-14

您可以将此查询简化为以下内容,删除子查询:

Select      A.Col1, B.Col2
From        tbl_AJoin   A
Left Join   tbl_BJoin   B   On  A.col1 = B.col1
 类似资料:
  • 当我在GSI上查询时,我对Amazon DynamoDBv2的Amazon DynamoDBAsync.query异步请求的实现返回代码400“查询条件错过了关键模式元素......”。 我尝试使用DynamoDBAttribute名称(“myAttr”)和GSI的实际索引名称(“idx\u global\u myAttr”),并收到相同的错误代码。这与Docker的图片“amazon/dynam

  • 问题内容: 我正在用PHP构建RSS提要,它使用来自三个单独表的数据。这些表均指向站点不同区域内的页面。我遇到的问题是尝试在XML中创建链接字段。在不知道每个记录来自哪个表的情况下,我无法创建指向该表的正确链接。 有办法解决这个问题吗?我尝试使用mysql_fetch_field,但它为表返回了空白值。 还涉及其他字段,但这基本上是我正在使用的查询。 问题答案: 应该足够简单,只需执行以下操作:

  • 我面临的问题是在java中使用hibernate为postgres表执行以下查询。 该查询由使用内部连接从3个表中检索数据组成。 QryJourney=“选择journey.id、journey.operatingday、journey.linename、journey.scheduledeparturestopname、journeydetail.stopname、journeydetail.l

  • 我使用Lambda(Python)查询我的DynamoDB数据库。我正在使用boto3库,我能够进行“等效”查询: 这个脚本的工作原理是: 但是,当我将查询表达式更改为以下内容时: 我得到一个错误: 根据该[1]资源,“gt”是Key()的方法。有人知道这个库是否已经更新,或者除了“eq”之外还有什么其他方法可用吗? [1] http://boto3.readthedocs.io/en/lates

  • 问题内容: 我正在使用Hibernate / JPA执行本地PostGIS查询。这些查询的问题在于它们需要的参数不是经典的X =“值”形式。 例如,以下几行崩溃 但是,以下查询有效: (但是它很容易出现SQL注入…) 有谁知道如何在这种情况下使用? 问题答案: 未为本机查询定义使用命名参数。根据JPA规范(第3.6.3节“ 命名参数”): 命名参数遵循第4.4.1节中定义的标识符规则。命名参数的使

  • 问题内容: 我已经在各种DBMS(Oracle,SQL Server,MySQL,Access等)上编写SQL已有多年了,而一直困扰着我的一件事是,表和子目录似乎缺乏命名约定。查询别名。 我一直都读过表别名是解决问题的方法,尽管我并不总是使用它们,但是当我这样做时,我总是会卡在要使用的名称之间。我已经从使用描述性名称变为单个字符,例如“ t”,“ s”或“ q”,然后再返回。以我刚刚编写的此MS