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

使用INNER JOIN合并临时SQL表时提示“Missing keyword”的问题排查

解决SQL "Missing keyword" 错误的方案

嘿,这个问题我在日常写SQL时碰到过好多次,咱们拆解一下问题所在:

你的SQL语句存在两个关键语法问题,直接导致了"Missing keyword"的报错:

  • 缺少最外层的SELECT和FROM关键字
    SQL语句的核心结构是SELECT 要查询的字段 FROM 数据源,你现在的写法直接把两个子查询拼起来做连接,完全跳过了最基础的SELECT和FROM部分,数据库根本无法识别这是一个完整的查询语句。

  • INNER JOIN必须搭配ON关键字指定连接条件
    在标准SQL语法(尤其是Oracle这类数据库)中,使用JOIN语法连接表/派生表时,必须通过ON子句明确声明连接条件,不能直接用WHERE来替代。虽然有些数据库对WHERE的兼容度较高,但Oracle会严格校验JOIN的语法规范,没有ON就会触发关键字缺失的错误。

修正后的示例代码

-- 根据实际需求选择要查询的字段,这里以两个子查询的field1为例
SELECT temp1.field1, temp2.field1
FROM (SELECT field1 FROM TB1 INNER JOIN ... WHERE etc) temp1
INNER JOIN (SELECT field1 FROM TB2 INNER JOIN ... WHERE etc) temp2
-- 用ON替代WHERE来指定JOIN的连接条件
ON temp1.field1 = temp2.field1

另外补充一点:派生表的别名(比如temp1、temp2)前面的AS关键字在多数数据库中可以省略,不是导致报错的原因,核心还是前面提到的两个问题哦。

内容的提问来源于stack exchange,提问作者Paulo Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:33:31