Skip to content

The Multi-Table Join step joins many tables (up to 32) in a single operation using a visual join-graph designer, replacing the pattern of chaining several two-table join steps. You add tables, draw joins between their columns, choose a join type and conditions per join, and map the output columns. The editor has four tabs: Tables & Joins, Output Columns, Post-Join Filter, and Advanced (server-set).

For a full walkthrough, see the Multi-Table Join step guide.

  • Add Table — place a source table on the canvas as a card of columns. Each table has an alias (used as alias.column) that must start with a letter or underscore and can’t be a SQL keyword.
  • Target Table — the table the joined result is written to.
  • Draw joins — drag from a column dot on one table to a column on another to create a join; an optional Label names the edge.
  • Inbound Filter — a per-table filter applied before the join.
  • Re-fetch from server — refresh a table card’s columns from the latest catalog.
  • Tidy Layout / Fit to View — auto-arrange the graph, or zoom to fit; pan and zoom are also manual.
  • Undo / Redo / History — step through, review, and restore edits.
  • Filter columns… — narrow the columns shown on a table card.
  • Export — download the join diagram as an SVG.
TypeKeeps
INNERRows that match across the joined tables.
LEFTAll rows from the left table, matched rows from the right.
FULLAll rows from both tables.
CROSSEvery combination of rows (no conditions allowed).

Each non-cross join has one or more conditions combined with AND / OR, using the operators =, <>, <, <=, >, >=, BETWEEN, IS NULL, IS NOT NULL, IN, NOT IN, LIKE, NOT LIKE.

On the Output Columns tab, map the result columns from any joined table — add them individually, all at once, or by picking from the canvas; rename, set data type, and aggregate as needed. Same-named columns are auto-prefixed with their source alias to avoid collisions. The Post-Join Filter tab applies an optional filter to the joined result (a SQL HAVING equivalent) before it’s written.

  • The join graph is a tree: each table joins into the result through exactly one edge (no cycles), and a table can’t join to itself.
  • The configuration is validated both when you save the step and when it runs; errors mark the offending table or join with a ⚠ marker, and Jump to issue navigates to the first problem.