In a CSV workflow, merge (or append) stacks rows from files with the same columns. Join adds columns from another file by matching a shared key, such as an email address or customer ID. If you want more records, append the files. If you want more information about existing records, join them.

The word merge can mean something else in SQL: MERGE matches rows and then inserts, updates, or deletes records in a target table. A SQL JOIN combines rows for a query result. Check which meaning a tool uses before choosing an operation.

Merge and Join examples

Merge example

Let's say you have a File A:

  firstName |    lastName    |  jobTitle
    Jean    |       Doe      |  CEO
   Morgan   |     Stanley    |  Marketing Officer

And a File B:

  firstName |    lastName    |  jobTitle
    Joe     |     Kanigan    |  Finance
   Marie    |     Filman     |  Dev

Then, the resulting of a merge operation would be:

  firstName |    lastName    |  jobTitle
    Jean    |       Doe      |  CEO
   Morgan   |     Stanley    |  Marketing Officer
    Joe     |     Kanigan    |  Finance
   Marie    |     Filman     |  Dev

Join example

Now, let's look at the join operation. When performing a join, your files can have different structures but must have a common identifier that will be used to combine the data together.

We have a File C:

          email           |      jobTitle
    jean.doe@gmail.com    |        CEO
     morgan@gmail.com     |    Marketing Officer

We want to join it with File D:

          email           |         City
    jean.doe@gmail.com    |        Paris
     morgan@gmail.com     |       New York

An inner join on email produces:

          email           |      jobTitle         |       City
    jean.doe@gmail.com    |        CEO            |       Paris
     morgan@gmail.com     |    Marketing Officer  |      New York

The shared email identifies which rows belong together. A row without a match is absent from an inner join; a left join keeps every row from File C and leaves unmatched File D fields empty. Before joining, check for duplicate or blank keys, since a duplicate key can produce multiple matches instead of one result per person. For a practical file workflow, see how to join CSV files by a unique identifier.