DuckDB关联子查询报错求助:BinderException问题原因排查
错误原因及修正方案
错误原因
- 子查询表引用错误:关联子查询的
where条件中你使用了原表名b_n_f.__policy,但主查询里已经为b_n_f定义了别名b,子查询的作用域仅能识别这个别名,无法直接引用原表名,这是触发BinderException的直接原因。 - 别名执行顺序冲突:
lastquotefile是select子句中定义的字段别名,而SQL执行逻辑里where子句会优先于select子句执行,因此where无法直接识别该别名,必须替换为对应的原始字段q.__filename。
修正后的SQL
select o.__policy, o.__timestamp, q.__filename as lastquotefile from b_n_f b left join q_n_f q on b.__policy = q.__policy where q.__filename = ( select __filename from QUOTE_LIST sub where b.__policy = sub.__policy limit 1 )
内容的提问来源于stack exchange,提问作者smaillis
相关产品推荐
相关产品推荐

