JSONL Join
Join two JSONL files on a key. Like a SQL join, but on files and without a database — inner, left or full, with a choice of what happens when the right-hand side has several matches or a colliding field name.
Join
Join semantics
- Inner — output has one row per matched left record. Unmatched records on either side disappear, and the status bar counts them so silent data loss is visible.
- Left — every left record appears, enriched where a match existed and unchanged where it did not. The usual choice for "add these attributes if we have them".
- Full — as left, plus every unmatched right record appended on its own.
On multiple matches: first and last keep the output the same length as the left file, which is usually what you want. Emit one row per match is a true relational join and can make the output larger than either input — the classic fan-out that turns 10,000 records into 400,000.
Nested and composite keys
The key can be a dotted path — user.id, meta.source.id — on either side. Keys are
compared as text, so 1 and "1" match; that is usually convenient, and
occasionally not what you want.
There is no composite-key option. If you need to join on two fields, build a single key first with Query or the SQL playground — which handles arbitrary join conditions properly, including composite keys and inequality joins, via DuckDB.
Privacy
Nothing is uploaded. The whole thing runs in this tab, in your own browser. That matters here more than on most tool sites — training data is usually the most sensitive file a team owns.
Frequently asked questions
Nothing matched. Why?
Almost always a type or whitespace difference in the key, or the wrong path. Check both key fields with Field coverage, which shows example values and how many records even have the field.
Is the output order stable?
Yes — left records come out in their original order, and appended right-only records follow in the order their keys were first seen.
Can I join more than two files?
Join two, then use the result as the left side of the next join. For anything more complex, the SQL playground can query several files at once.
What about a right join?
Swap the panes and use a left join — it is the same operation.