CSV Table Join
Connect records from two CSV files using shared keys. Relations such as orders with multiple line items retain every matching pair, and unmatched records from either side remain available in separate tables. Select multiple key pairs when the entire combination must match.
Key features
- Inner, left and full joins using up to four composite key pairs
- Every pair retained for one-to-many and many-to-many relations
- Separate unmatched tables with original CSV record numbers
- Reports for matched source rows, output rows, duplicate key groups and empty keys
- Explicit key trimming and optional empty-key matching
- Paginated 50-row previews and formula-protected CSV downloads
How to use
- Paste the left and right CSV tables or choose UTF-8 files.
- Select each delimiter and read both tables’ columns.
- Pair matching key columns, using one to four pairs.
- Choose the join type and whitespace/empty-key policies, then run the join.
- Review all three result tabs and the row-count report; save the table you need as CSV.
Use cases
- Connect order items using both an order number and region
- Attach supplier information to inventory and find missing product codes
- Preserve leading zeros in text IDs while combining exports
- Explain expanding output by checking duplicate key groups and matching pairs
Frequently asked questions
How do inner, left and full joins differ?
Inner keeps matching row pairs. Left also keeps unmatched left records with empty right fields. Full additionally keeps unmatched right records. The separate unmatched tables remain available regardless of the chosen join type.
Why can the output contain more rows than either input?
If a key appears twice on the left and three times on the right, it produces six matching pairs. The tool does not silently choose the first row or remove duplicates. Use the pair count and duplicate-key group counts to understand the expansion.
How are empty keys, leading zeros and spaces compared?
The default is exact text comparison: 001 differs from 1 and A differs from a. Unicode is not normalized. A composite key with any empty component does not match by default. Optional trimming applies only to key comparisons, leaving source output untouched. Allowing empty keys matches identical tuples containing empty values.
What do source record numbers and duplicate-key counts mean?
Record numbers count CSV records including the header and blank records. A quoted newline remains part of one record. Duplicate keys count groups with at least two records, not the number of duplicate rows. Empty keys excluded from matching are also excluded from duplicate-key counts.
Which files and output sizes are supported?
Use UTF-8 CSV with commas, semicolons or tabs. Each input allows 1 MiB, 5,000 data rows, 32 columns and 100,000 cells. Joined output is capped at 10,000 rows, 200,000 cells including headers and 8,000,000 text characters. Exceeding a cap returns an error instead of a partial result. Cancel or Esc stops a running calculation.
Why do some downloaded cells start with an apostrophe?
Text that may be interpreted as a spreadsheet formula receives an apostrophe prefix. Original values and on-screen data stay unchanged, and the download message reports how many cells were protected. Interpretation can change when another program edits or resaves the CSV.
Privacy
Pasted CSV, file contents, settings and results are processed in this page’s browser memory. This tool does not automatically send inputs to a server, URL, analytics event or browser storage. Files are created only when you request a download. Input changes, Clear all and leaving the page discard the result.
Comments & questions