Join two CSV files
Match rows between two CSV files by a shared column — entirely on your device.
On your device
Small files are joined right here in the page; a large file uses the same on-device database engine as the profiler and viewer, downloaded once and then kept on your device.
Match rows between two CSV files by a shared column — entirely on your device. Small files are joined right here in the page; a large file uses the same on-device database engine as the profiler and viewer, downloaded once and then kept on your device.
About this tool
What you provide
- Two CSV or TSV files.
What you get
- The joined rows — every column from both files unless you narrow it — for the join type you pick: matching rows only, every row from the first file, or only the first file's unmatched rows.
- Three exact counts for the pair: matched rows, unmatched in the first file and unmatched in the second, computed the same way whichever join you ran.
Limits
- Small files join right here in the page; once the two files' combined size reaches 5 MB the tool switches to the same on-device database engine as the profiler and viewer, downloaded once (about 7 MB) and kept on your device.
- If the two match columns hold different kinds of value — numbers on one side, text on the other — a warning names both and shows samples from each; it never blocks the join.
- The joined result is shown 100 rows at a time; exporting downloads the whole result, not just the rows on screen.
- Everything runs on your device and neither file is uploaded anywhere.
How to use it
-
Choose the first CSV file
Tap “Choose the first CSV file” to pick the first .csv or .tsv file.
-
Choose the second CSV file
Tap “Choose the second CSV file” — a small pair loads its columns right away; once the two files together reach 5 MB, a one-time engine download is offered first.
-
Pick the match column and join type
Choose a column on each side to match on, then which rows you want: only rows that match in both files, every row from the first file, or only the first file's unmatched rows.
-
Run the join and read the result
Tap “Join the files” to see the joined grid and three exact counts, then “Export result” to download the whole joined result as a CSV file.
Frequently asked questions
Why does this tool sometimes ask to download an engine, and sometimes not?
Below 5 MB combined, the two files join right in the page with no download at all. At or above that size, the join runs in the same on-device database engine as the profiler and viewer instead — downloaded once and kept on your device.
What is an anti join, and why isn't there a full outer join?
"Only rows in the first file with no match in the second" is what this tool calls an anti join — it answers which rows never matched. There is no full-outer option; the three choices cover matching rows, every row from the first file, and the rows with nothing to match.
The two match columns show different kinds of value — will the join still work?
Yes. The warning is informational only and never blocks the join — run it and decide for yourself whether the mismatch matters for your data.
Does joining upload either file anywhere?
No. Both routes read the files on your device — small files right in the page, larger ones through the downloaded engine — and nothing about either file is sent to a server.