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
- Open both files. Drag your first CSV onto ExploreMyData. Then click the
+tab to add the second file. - Navigate to the file you want as the left (primary) table. Click its tab.
- Select Join from the Data group in the toolbar.
- 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
- 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.