You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle三表连接查询报ORA-00905缺失关键字错误排查

报错根因

你触发ORA-00905: missing keyword错误的核心原因是Oracle数据库的外连接语法不支持单独写OUTER JOIN,必须在OUTER JOIN前明确指定外连接类型:LEFT/RIGHT/FULL三选一,原语句里只写了outer join,缺少连接类型关键字,解析器无法识别连接逻辑,就会抛出缺关键字的报错。

修正方案

根据实际需要保留哪部分未匹配数据的业务逻辑,选择对应的外连接类型即可:

  • 要保留全部client表记录,即使没有匹配的owns、account数据,使用左外连接
  • 要保留全部account表记录,即使没有匹配的owns、client数据,使用右外连接
  • 要保留三张表所有未匹配关联条件的记录,使用全外连接

最常用的「查询所有客户及其名下账户余额,没有账户的客户也展示」场景的修正SQL如下:

select client.client_nbr, owns.account_nbr,account.balance
from client 
left outer join owns
on client.client_nbr=owns.client_nbr
left outer join account
on owns.account_nbr=account.account_nbr  

补充说明:Oracle语法中outer关键字本身可以省略,直接写left join/right join/full join也能正常执行,但代表连接方向的left/right/full关键字不能省略。

内容的提问来源于stack exchange,提问作者nick shetty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 22:09:36