报错原因:
因为第一种直接从 O_510050 的表里取 close 这一列。left join 是跟左表对齐的,左右表的长度不一样,所以报错长度不一致。
第二种是从 left join 的结果表里取 O_510050 的 close 列。
解决方案:用元编程
TB = sql(select=(each(sqlCol, TB.colNames()) join sqlCol("close")), from=lj(TB, O_510050, `datetime)).eval()
备注:上述写法需要表 TB 里面没有 ”close“ 列。因为左右表重名的话,lj 结果表里的对应右表的列名就不是 ”close“ 了。
如果有重名,可以考虑用 rename! 函数换个列名