Hi i was doing a test using tJoin component.
In which
i had 2 files both having id and names column in them.
i was joining these 2 tables using id i.e Input key attribute : ID and Lookup key attribute : row2.ID
now according to join the values from main flow should propagate;which was happening.
Now when i checked the property of : include lookup columns in output;that time the values from look up table were propagated to the target which is correct.
But when i removed this check and was then expecting the values from the main flow to be propagated to the target;i was receiving null!!
Why is this ?
Hi When you check 'Include lookup columns in output', you can map lookup column with output column. And the lookup values will be passed. In Talend source code, it will change as follow.
if (util_tJoin_1.isJoined(row1)) { row3.name2 = util_tJoin_1.lookupValue.name //pass value }
Thanx for ur reply. I will make the changes int he code to get back the main flow values But my question is by default the 'include lookup columns in output' is not checked so we get the main flow values when i check it i get the lookup flow values in the target But when i unchecked it shouldn't the code be changed back to getting the main flow values ??
Hi
This option allows you to generate the lookup column in the output table, you need to configure the column mapping once this option is checked: the left side is the output column and the right side is the lookup column.
The column mapping is one by one in order, the first column of output table mappings the first column of main flow, if there are more columns in output table, the surplus columns will be null if they don't mapping the lookup columns.
By the way, tMap component performs the join (including the inner join and external join) more better, it provides an GUI window for your operation. I suggest you to use tMap to design the job rather than tJoin.
Best regards
Shong
Hi,Thanx for ur reply.
This is what i have found.
You could consider the case as in my previous posts.
e.g
i have 2 tables Table A and Table B
Table A has
id name
1 a
2 b
3 c
4 d
5 e
Table B has
id name_upd
1 t
2 u
3 v
4 w
5 x
6 y
7 z
Now when i join these 2 tables using tJOin with id as joiner
Case 1 :
Include lookup columns in output - unchecked
Inner join(with reject output) - checked
o/p :
1 a
2 b
3 c
4 d
5 e
Case 2 :
Include lookup columns in output - checked
o/p column :name
lookup clumn : name_upd
Inner join(with reject output) - checked
o/p :
1 t
2 u
3 v
4 w
5 x
Case 3 :
Include lookup columns in output - unchecked(w/o removing values in the grid )
o/p column :name
lookup clumn : name_upd
Inner join(with reject output) - checked
o/p :
1 null
2 null
3 null
4 null
5 null
Case 4 :
Include lookup columns in output - unchecked( removing values in the grid )
o/p column :name -------------This values are removed using the red X after checking the lookup columns in output checkbox and the unchecking it.
lookup clumn : name_upd -------------This values are removed using the red X after checking the lookup columns in output checkbox and the unchecking it.
Inner join(with reject output) - checked
o/p :
1 a
2 b
3 c
4 d
5 e
Is this the expected behaviour ??
I think that when i uncheck 'Include lookup columns in output' that time even the values are removed from the grid and i don't have to specifically remove them ,just unchecking should do the job.
Is it a bug ?
Hi Thanks very much for your interesting in Talend and your feedback. We will think twice about this feature. On one hand, it is convenient to save your settings. On the other hand, it may confuse users. We shall improve it. Best regards! Pedro