Join node
Append Fields
Append every Source row's columns onto every Target row (a cross join).
What it does
Appends every column from the Source input onto every row of the Target input: a cross join. Each Target row is paired with each Source row, so the output has (Target rows × Source rows) rows, with the Target columns first. Its classic use is a small Source (often a single row of constants) stamped onto every Target row.
Inputs and outputs
| Inputs | Target, Source. |
| Outputs | One. |
When to use it
- Stamp one row of constants (a run date, thresholds, a config record) onto every row
- Attach a few global lookup values to a whole table
- Build every combination of two small lists
Examples
Stamp a run date
Target: 2,000 orders · Source: 1 row { run_date }Output: 2,000 rows, each carrying run_date.
All combinations
Target: 5 sizes · Source: 4 colors
Output: 20 size × color rows.
Name collision
Both sides have id → id and id_source
The Source column is suffixed; rename it in the form if you prefer.
Tips
- Two inputs: the Target (its rows are kept) and the Source (its columns are appended). Wire the right input to each port.
- Colliding Source column names get a suffix (default _source); override any of them in the form.
- A cross join multiplies rows fast; the record guard warns (or stops) when the Source has more rows than expected, since the usual Source is a single row.
- To drop, reorder, or retype columns afterward, chain a Manage Columns node.
- An empty Source (or Target) gives no rows, but every column still goes on, so a Union or Join after it keeps working.