TDengine关联两个超级表查询报invalid column name错误是什么原因?
问题原因分析
你执行的SQL语句存在明显笔误,是触发报错的直接原因:
关联条件中super.int_tag = sup erb.int_tag部分,你将第二个超级表的别名superb误输入为带空格的sup erb,数据库无法识别这个非法表别名,因此抛出无效列名错误。你可以先修正笔误,使用调整后的SQL测试:
select super.int_col from super, superb where super.ts = superb.ts and super.int_tag = superb.int_tag;
如果修正笔误后仍存在报错,可继续排查TDengine的特有约束问题:
- 若
int_col字段在super和superb两个超级表中同时存在,查询时必须明确指定该字段所属的表别名,否则会因列名歧义触发报错,需要写为select super.int_col或者select superb.int_col - TDengine仅2.2及以上版本支持超级表之间的等值Join操作,低版本无法执行该类关联查询
- 若使用3.x版本,跨VGroup的Join操作需要提前开启集群配置参数
supportCrossVgroupJoin,否则会触发操作无效报错
内容的提问来源于stack exchange,提问作者Jackson
相关产品推荐
相关产品推荐

