【发布时间】:2017-08-25 01:38:28
【问题描述】:
鉴于多个驻留表,我想根据不同表中的字段创建一个新字段。
table1:
LOAD * INLINE [
id1,val1
a1,car1
a2,car1
];
table2:
LOAD * INLINE [
id2,id1,val2
b1,a1,type1
b2,a2,type2
];
table3:
LOAD * INLINE [
id3,id2,val3
c1,b1,mfr1
c2,b2,mfr2
];
为了论证,假设 table1 有 ~1M 行,table2 ~1K 行,table3 ~10 行。我想创建一个新字段,添加到table1 或者可能在id1 链接的新表中,结果是:
id1 val1 newval
a1 car1 car1type1mfr1
a2 car2 car2type2mfr2
努力:
newtable:
load val1 & val2 & val3 as newval;
没有错误但没有newtable 或newval。
newtable:
left join (table2)
load val1&val2 as newval resident table1;
Field not found - <val2> 出错。 (显然我想扩展它以包括table3,但如果我不能用 2 个表来做,那么 3 个就行不通了。
真实数据包括这个新字段的七个表(大量外键)。数据从 QVD 加载(数据在多个 QVW 之间共享),非常类似于 SQL 数据库;这些表都不是逐行冗余的,因此将 db 表组合成一个 QVD 表可能效率低下。 (再加上一次刷新一个表非常容易。)一位同事建议我将每个 QVD 加载到一个巨大的表中,但这似乎不对(我也没有成功地链连接几个表)。
在 win10-x64 上使用 QV 12.0 桌面在 QVS 上进行部署。
【问题讨论】: