Dzzz

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

  1. Choose the first CSV file

    Tap “Choose the first CSV file” to pick the first .csv or .tsv file.

  2. 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.

  3. 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.

  4. 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.