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

AWS Athena执行SQL差集查询报mismatched input 'from'错求助

SQL报错根因

原SQL存在4个核心问题,直接触发语法报错和逻辑错误:

  • TRIM函数使用完全错误:Athena基于Presto引擎,移除字符串前缀的正确写法是trim(LEADING '待移除前缀' FROM 字段名),原代码把整张表、WHERE过滤条件直接写进TRIM参数里,直接触发mismatched input 'from'的解析错误。
  • SELECT子句存在冗余逗号:as origin_file, 后直接接FROM关键字,逗号后无查询字段,属于基础语法错误。
  • 关联逻辑写反:需求是找landing表独有的文件,原代码以sales表为左表做左连接,永远无法返回landing表存在、sales表不存在的记录。
  • 关联字段不匹配:sales表存的是带完整路径的文件地址,landing表存的是纯文件名,直接用两个字段相等做关联条件,即使语法修正也无法匹配到正确记录;同时run_id的过滤条件被错误写进TRIM参数,没有生效。
正确可执行SQL
SELECT l.filename
FROM "landing"."ejpos_landing_files" l
LEFT JOIN (
    -- 筛选对应批次的销售数据,将完整路径裁剪为纯文件名
    SELECT trim(LEADING '/datarite/ejpos/8023/20220706/' FROM origin_file) AS sale_filename
    FROM "validated"."datarite_ejpos_itemsale"
    WHERE run_id = '8035'
) s ON l.filename = s.sale_filename
WHERE s.sale_filename IS NULL;

执行上述语句会返回预期结果filename4。如果后续文件路径前缀不固定,可以把裁剪文件名的逻辑替换为split_part(origin_file, '/', -1),直接取路径最后一段的纯文件名,不需要硬编码路径前缀,兼容性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:18:14