Reference · SemText · Data & tables
<sem-data-join>
SemText element
You name the two sources and the key column. The joined result becomes a new data set that queries can use. Nothing shows on the page by itself — it only feeds queries.
Example
Live render boots with JavaScript — the authored source is alongside.
variant: the bare declaration
The element itself, outside a working visualizer. It renders nothing in any tier — a declaration with nothing to read; the joined bucket surfaces only through a sem-data-query results table.
variant: colliding right column is qualified
Orders also carries a name column — the product, not the person. The join exposes the right side as orders.name, so SELECT * shows both names side by side. u3 has no orders and drops (inner join).
Live render boots with JavaScript — the authored source is alongside.
variant: authoring error — unknown bucket
right names no bucket in the visualizer: the join renders .sem-data-error (role=alert), registers no bucket, and heals on its own when a late file or API source supplies the missing one.
Live render boots with JavaScript — the authored source is alongside.
variant: authoring error — key column missing
on names a column neither bucket declares: the same alert treatment, with the message naming the offending bucket and the key.
Live render boots with JavaScript — the authored source is alongside.
variant: authoring error — join name shadows a source
A result bucket must not overwrite a source bucket: name colliding with an existing data-name is an authoring error, never a silent rebind.
Live render boots with JavaScript — the authored source is alongside.
Source: spec/schema/sem-data-join.md