Note: This was originally posted by an inactive account. Content was preserved by moving under an admin account.
Originally posted by: stonysmithLookup is the wrong node for that. Use Join.
As you discovered, Lookup, with a key of "1" and "DuplicateKeyBehavior" set to "Ignore" will only process the last record of the LookupKey input.
Join or Xref will process all records. However.....
The method works well enough for small record sets. But, if you try this on large recordsets, then it's going to blow up because Join is producing a many-to-many match (cartesian Join) and it will end up trying to match too many records at once and will blow up with a memory error.
Look at the system parameter ls.brain.node.join.maxbuffersize to find out what your size limit is. If you're on the edge, you can increase the limit, but it's a bad idea to try to increase that size too large - i think it's top absolute limit is 4gb.
You can mitigate this if there is some other column that you can add to the Key. Example: If you were matching addresses, then adding ZipCode to the match keys would provide some filtering on how many records that Join tries to match at one time.
In your case, If you are only matching a small number of groups (under 1000), then you may never see the memory problem.