首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在级联管道中,什么是SQL而不是IN?

在级联管道中,什么是SQL而不是IN?
EN

Stack Overflow用户
提问于 2016-03-24 11:34:42
回答 1查看 117关注 0票数 3

我有两个带有一个公共字段的文件,基于这个字段值,我需要获得第二个文件值。

我该如何在这里添加where条件?

是否有其他管道可供不使用?

File1:

代码语言:javascript
复制
tcno,date,amt
1234,3/10/2016,1000
1234,3/11/2016,400
23456,2/10/2016,1500

File2:

代码语言:javascript
复制
cno,fname,lname,city,phone,mail
1234,first,last,city,1234556,123@123.com

示例代码:

代码语言:javascript
复制
Pipe pipe1 = new Pipe("custPipe");
Pipe pipe2 = new Pipe("tscnPipe");
Fields cJoinField = new Fields("cno");
Fields tJoinField = new Fields("tcno");
Pipe pipe = new HashJoin(pipe1, cJoinField, pipe2, tJoinField,  new OuterJoin());
//HOW TO ADD WHERE CONDITION i.e. CNO IS NULL FROM SECOND FILE
Fields outFields = new Fields("tcno","tdate", "tamt");

我期望输出作为第一文件,最后一行23456,2/10/2016,1500

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-01 08:07:05

根据代码中的注释:

代码语言:javascript
复制
//HOW TO ADD WHERE CONDITION i.e. CNO IS NULL FROM SECOND FILE

尝试使用FilterNull

HashJoin步骤之后,在代码中添加以下行:

代码语言:javascript
复制
FilterNull filterNull = new FilterNull();
pipe = new Each( pipe, cJoinField, filterNull );

类似于:

代码语言:javascript
复制
Pipe pipe1 = new Pipe("custPipe");
Pipe pipe2 = new Pipe("tscnPipe");
Fields cJoinField = new Fields("cno");
Fields tJoinField = new Fields("tcno");
Pipe pipe = new HashJoin(pipe1, cJoinField, pipe2, tJoinField,  new OuterJoin());

// Filter out those tuples which has cno as null
FilterNull filterNull = new FilterNull();
pipe = new Each( pipe, cJoinField, filterNull );

Fields outFields = new Fields("tcno","tdate", "tamt");
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36199203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档