Data & Requests · LOCAL TOOL
CSV Join Audit
Compare two comma-delimited CSV tables by a shared header. Show source row numbers per key and calculate the resulting inner-join and left-join row counts without materializing a potentially huge join.
No API call
Your input
LOCALResult
Run the tool to see a result.
Your result will appear here. Input is not saved.
WHY THIS TOOL EXISTS
A focused job, not a black box.
Two left rows and three right rows for the same key create six matching pairs. Reporting that multiplication helps catch a mistaken one-to-one assumption before combining exports.
How to use it
- Paste the two CSV tables and their shared key header.
- Review left-only, right-only, and duplicate key groups.
- Compare predicted join row counts with the relationship you intended.
TRY A WORKING EXAMPLE
Start with known input.
Load this sample into the workspace, run the tool, and compare the result shown below.
Show sample input
{
"left": "id,name\n1,Rin\n2,Mika\n2,Lee",
"right": "id,team\n2,platform\n2,design\n3,ops",
"key": "id"
}Expected sample result from the local tool
4 inner-join row(s) · 5 left-join row(s).
{
"leftRows": 3,
"rightRows": 3,
"innerRows": 4,
"leftJoinRows": 5,
"keys": [
{
"key": "1",
"leftRows": [
2
],
"rightRows": [],
"pairs": 0,
"status": "left only"
},
{
"key": "2",
"leftRows": [
3,
4
],
"rightRows": [
2,
3
],
"pairs": 4,
"status": "duplicate key"
},
{
"key": "3",
"leftRows": [],
"rightRows": [
4
],
"pairs": 0,
"status": "right only"
}
]
}LIMITS AND INTERPRETATION
What the result cannot tell you.
Comma-delimited CSV with unique headers and consistent row widths; maximum 10000 rows per table. Keys are exact strings, including empty strings. SQL NULL semantics, fuzzy matching, and database collations are not modeled.
Inputs are processed in this page and are not written to local storage.