The exists() function checks if a value of the field (first parameter of the exist function) has been loaded anywhere in the script. This parameter is always a field, never an expression. The exists in the second load compares existing F3 values against incoming F1 values here: WHERE NOT Exists(F3, F1);
You suggestion about combination F1 and F2 is not going to work the same way because it is logicallydifferent. And, you still must use field as the first parameter, can't avoid F3 here:
TABLE1: LOAD *, F1&F2 as F3 INLINE [ F1, F2 1, a 2, b 3, c ];
concatenate LOAD * INLINE [ F1, F2 4, d 4, e ] WHERE NOT Exists(F3, F1&F2);
The logical difference is easy to see if change data a little, add another line into the 1st table: 4, z
The example with (F1 as F3) is going to eliminate both record from the table 2, because there is F3=4 in table 1 The combination logic will keep all the data because all combinations are unique in this case.
Another copied question! All these questions are Interview Questions. I've listed loads of interview questions on my blog without answers and Chandramohan just copied them from my blog. I wish he could have changed the text format but well he didn't!!