在CnosDB中使用Cross Join查询数据失败,该如何解决?
在CnosDB中实现Cross Join查询的方案
问题说明
根据你提供的报错信息,CnosDB底层依赖的DataFusion查询引擎目前未实现Cross Join(笛卡尔积连接),直接使用隐式Cross Join语法(select * from air a1, air a2;)或显式CROSS JOIN语法都会触发报错,提示该功能暂未支持。
替代实现方式
若需要获取两个表的笛卡尔积结果,可以通过带恒真条件的JOIN语句模拟Cross Join的效果,具体SQL如下:
select * from air a1 join air a2 on true;
该语句会匹配两个表的所有行组合,与Cross Join的行为完全一致。
补充说明
你之前测试的join ... on a1.station = a2.station属于等值内连接,仅匹配两表station字段相等的行;而on true的连接会生成所有可能的行组合,满足Cross Join的需求。
内容的提问来源于stack exchange,提问作者ZuoTiJia
相关产品推荐
相关产品推荐

