Skip to content

join

join enriches one table with another. The left input is the anchor, especially for how: left; the right input supplies matching columns.

Use one join for one relationship. If the explanation has to say “and then it also joins…”, chain another join so the row-count effect stays inspectable.

FieldRequiredNotes
inputsyesExactly two upstream tables: left first, right second.
leftKeyyesBare column name or expression evaluated on the left table.
rightKeyyesBare column name or expression evaluated on the right table.
hownoinner by default; left keeps all left rows.
  • Choose inner when unmatched rows should disappear. Choose left when the left table defines the cohort.
  • Watch many-to-many relationships. Rime allows them, but they create one output row for every matching pair.
  • If keys need normalization, an upstream derive node often makes the matching logic easier to review than expression keys inside the join.

default is the joined table. Right-side column names are suffixed when needed to avoid collisions.

The editor/report should make left-vs-right order and row-count expansion visible.

- id: enriched
kind: join
inputs: [orders, customers] # length 2
leftKey: customer_id
rightKey: id
how: left # inner | left, default inner