jsonlkit.com
JSONL (JSON Lines) utilities, in the browser
Say hi →

JSONL Join

updated 28 July 2026

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

Drop the left .jsonl file here, or Up to 1 GB · in your browser
Drop the second .jsonl file here, or

Join semantics

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.

Related tools