SQL开发人员没有';无法识别右侧外部联接ORA-00905:缺少关键字

SQL开发人员没有';无法识别右侧外部联接ORA-00905:缺少关键字,sql,oracle,outer-join,Sql,Oracle,Outer Join,当我尝试在SQLDeveloper中运行以下查询时,查询抛出ORA-00905:missing关键字异常。SQL开发人员无法识别“right”和“join”关键字 我知道此错误是由早期版本的oracle sql引起的,但我无法更新该版本。为了让SQL开发人员理解,您可以重新编写该语句吗 SELECT R, S.ATT1, S.ATT2, S.ATT3, S.ATT4 FROM SHELL S RIGHT OUTER JOIN S.RO

当我尝试在SQLDeveloper中运行以下查询时,查询抛出ORA-00905:missing关键字异常。SQL开发人员无法识别“right”和“join”关键字

我知道此错误是由早期版本的oracle sql引起的,但我无法更新该版本。为了让SQL开发人员理解,您可以重新编写该语句吗

SELECT R,
       S.ATT1,
       S.ATT2,
       S.ATT3,
       S.ATT4
  FROM SHELL S
 RIGHT OUTER JOIN S.ROUTE as R

语法错误。试着这样做:

select r.*, s.att1, s.att2, s.att3, s.att4
from shell s right outer join route r

问题是,在右外部联接中缺少要联接的表的名称,然后需要一个ON子句。另外,在指定表别名时,不能将
用作
——应该使用
您的\u表r
,而不是
您的\u表作为r
。也许你的意思是

select r ,s.att1, s.att2, s.att3, s.att4
  from shell  s
  right outer join YOUR_TABLE_HERE r
    ON r.ROUTE = s.route

如果您查看sqldev中的代码,您可以看到我们在R上放了一个语法警告,如果您将鼠标移到上面,您可以看到我们被关键字“AS”弄糊涂了……因此,导致问题的不是正确的外部联接,而是使用表别名的不正确形式-只需删除“AS”