SmartQueryTools

Join Files

Load two files and join them on a common key column. Supports INNER, LEFT, RIGHT, and FULL OUTER joins. Everything runs in your browser — your data never leaves your device.

Loading DuckDB engine…

Left file

Right file

How to use the Join Files tool

  1. Drop your main file on the Left file box, or click it to browse. CSV, TSV, Parquet, JSON, NDJSON, Arrow, Excel (.xlsx or .xls, first sheet) and YAML files are accepted.
  2. Drop the file you want to match against it on the Right file box, or click it to browse. The two files can be different formats, for example a CSV and an Excel sheet.
  3. Choose a join type: INNER, LEFT, RIGHT or FULL OUTER. Then pick the key column from each file. The keys can have different names, such as id and customer_id.
  4. Click Run Join. The first 200 rows of the result appear in a table below so you can check the match.
  5. Download the full result as CSV, Parquet, Excel or JSON. The file is saved as join_result with the matching extension.

Worked example

You have a customer list and an order list. You want every customer with their orders, including customers who have not ordered yet.

Input: customers.csv (left) and orders.csv (right)

customers.csv
id,name
1,Ana
2,Ben
3,Cara

orders.csv
order_id,customer_id,total
101,1,25
102,1,40
103,3,15

Settings

  • Join type: LEFT
  • Left key: id
  • Right key: customer_id

Output: join_result.csv

id,name,order_id,total
1,Ana,101,25
1,Ana,102,40
2,Ben,,
3,Cara,103,15

Ana has two orders, so she appears twice. Ben has no orders, but a LEFT join keeps him with blank order columns. The right key column (customer_id) is dropped from the output because it repeats the left key. Row order in the output is not guaranteed, so sort afterwards if order matters. With a FULL OUTER join, a right-side row with no match keeps its right columns, and its key is filled in from the right key column.

Frequently Asked Questions

How do I join two CSV files on a common column?

Load one CSV as the left file and the other as the right file. Pick the shared column as the left key and the right key, choose INNER to keep only matching rows or LEFT to keep every row from the left file, then click Run Join and download the result.

What is the difference between INNER, LEFT, RIGHT and FULL OUTER joins?

INNER keeps only rows whose key appears in both files. LEFT keeps every row from the left file and fills right-side columns with blanks when there is no match. RIGHT does the same for the right file. FULL OUTER keeps every row from both files and leaves blanks wherever a match is missing. With RIGHT and FULL OUTER, rows found only in the right file still show their key, taken from the right key column.

Why does my result have more rows than the left file?

If a key appears more than once in the right file, each left row is repeated once for every match. This is normal join behaviour. Remove duplicate keys from the right file first if you want exactly one match per row.

Can I join on more than one column?

Not in this tool. It joins on one key column from each file. For a join on two or more columns, load both files in the SQL Query tool and write the ON clause yourself, or combine the columns into one key first with Concatenate Columns.

Are my files uploaded to a server?

No. Both files are read and joined inside your browser tab. Nothing is sent to SmartQueryTools, and closing the tab clears the data.

Related tools