Expect to come across this important DataStage question in your next interviews. DataStage has three stages of processing that allow you to join tables based on key column values: lookup, join and merge. This post explains which phase to choose when, the differences between these phases, and development references for using these phases.  We use lookup levels when:  If the reference dataset is small.  A range search is being performed.  Row validations (reject links can output rows if there is no corresponding entry in the key-value lookup table).  We use the join phase when:  Joining large tables (running out of memory during the lookup phase).  Outer joins are performed (left, right, full outer).  Joining multiple tables with the same key.  We use merge levels when:  When multiple updates and reject links are required (for example, when combining a master record with one or more update records)