← All posts
4 min read

How to Join Multiple CSV Files Without Coding

You have customer data in one CSV and order data in another. You need to combine them. In a database, this is a JOIN. In Excel, it's VLOOKUP. In ExploreMyData, you can do it visually in your browser.

How joining works

A join combines rows from two tables based on a shared column (the "key"). For example, if both files have a customer_id column, you can join on it to bring order data alongside customer data.

Step by step

  1. Open both files. Drag your first CSV onto ExploreMyData. Then click the + tab to add the second file.
  2. Navigate to the file you want as the left (primary) table. Click its tab.
  3. Select Join from the Data group in the toolbar.
  4. Configure the join:
    • Right table: select the second file from the dropdown
    • Left key: the matching column in your current file (e.g., "customer_id")
    • Right key: the matching column in the second file (e.g., "customer_id")
    • Join type: INNER, LEFT, RIGHT, or FULL (see below)
    • Right columns: optionally pick which columns to bring from the right table
  5. Click Apply. The joined result appears in your grid.

Join types explained

INNER JOIN . Only rows where the key exists in BOTH tables.
              Customers without orders are excluded.
              Orders without matching customers are excluded.

LEFT JOIN  . All rows from the left table, plus matching rows
              from the right. Customers without orders appear
              with NULL for order columns.

RIGHT JOIN . All rows from the right table, plus matching rows
              from the left. Orders without matching customers
              appear with NULL for customer columns.

FULL JOIN  . All rows from both tables. Unmatched rows on either
              side appear with NULLs for the other table's columns.

Common use cases

  • Enrich data: join a transactions file with a products file to add product names and categories to each transaction.
  • Find missing data: use a LEFT JOIN and filter for NULLs on the right side to find customers who haven't placed orders.
  • Combine exports: join a CRM export with a billing export on email or customer ID.

Under the hood

The generated SQL looks like:

SELECT "l__join".*, "r__join"."product_name", "r__join"."category"
FROM "orders" AS "l__join"
LEFT JOIN "products" AS "r__join"
  ON "l__join"."product_id" = "r__join"."product_id"

ExploreMyData aliases both tables to avoid column name conflicts. If you select specific right columns, only those are included in the SELECT clause.

Tips

  • Make sure the key columns have the same data type. If one is a number and the other is text, use Convert Type first.
  • You can join files of different formats. for example, a CSV with a Parquet file.
  • After joining, you can apply any other operation (filter, aggregate, pivot) on the combined result.

Start joining your files →

Try it yourself

No sign-up, no upload, no tracking.

Open ExploreMyData