需求:
select a.CHANNEL_ID CHANNEL_ID,a.serv_id count_num,sum(b.AMOUNT-b.PRESENT_AMOUNT) amount from AGENT_ADSL_CL a , acct_item_1100 b where a.serv_id = b.prod_inst_id;
其中AGENT_ADSL_CL为单片表,放在29分片上,acct_item_1100为分片表,数据随机放在各个分片上,
进行联合查询时只能查到29分片上的数据(前提,插入acct_item_1100表的数据有部分分在了29分片上)
解决方法:
使用kettle表连接,将数据分别查出来,根据a.serv_id = b.prod_inst_id条件内连接两张表的数据放在中间表上,在对该中间表加条件进行查询,即可查到所有结果。
实例:
表输入2:sql中所需数据都查出来
表输入3:sql中所需数据都查出来
排序记录分别选择a.serv_id = b.prod_inst_id条件中的字段:
记录集连接:设置连接条件
字段选择:选出自己需要的字段即可
表输出:
至此,所需的联合查询的结果集已经放在中间表(需提前根据所需字段建好)中了,再加条件即可查出全部所需数据。