Skip to main content

Joined Tables

Show a value from a related record as a column in a data table.

Written by Alexander Käll

Summary

  • A joined column shows a value from a related record as a column. For example, each Deal's Company region, shown on the Deal row.

  • Joined columns are read-only in the table, and reach up to two associations away.

  • You can group or sort a table by it, and save it to the table view.

  • Joined columns read fields from one record. To summarise many records instead, use a formula field.

Who is this Article for?

  • Admins and power users who build tables, views, and widgets for their team (for example, CS Ops).

Series

This article is part of a series on Custom Models:

Article Contents

Click below to jump to the relevant section:

Introduction

A record often needs context that lives on a model it associates to: the Company a Deal belongs to, and that Company's region or tier. You could copy those values onto each Deal, but copies drift and become fields to maintain.

A joined column avoids that. It pulls a field from an associated model onto each row of a table, so the value shows inline and there's no duplicated field. To calculate across many related records instead — a count, a sum — use a formula field. That's the quick way to tell them apart: joined columns display one value; formula summarises many.

A joined column pulls a field from an associated model onto each row of a table. For example, a table of Deals can show each Deal's Company region inline:

A data table of Deals with three columns: Deal, Amount, and a highlighted Region column labelled "from Company." Rows show Acme Renewal / $40k / EMEA, Globex Expansion / $120k / AMER, and Initech Rollout / $25k / EMEA. The Region column's values are joined live from each Deal's associated Company record and are read-only.

This builds on custom associations, so it helps to be comfortable with those first.

💡 Coming from SQL?

A joined column is a JOIN that follows an association (a foreign key) and displays one column from the related record. It reads only — it never writes back.

Add a Joined Column

  1. In a data table, add a column.

  2. Choose the association to follow: the field that connects this row's model to the model holding the value (for example, a End User's Company association).

  3. Choose the associated model and the association field to fetch the value through. This is the association that connects the row's model to the model holding the field you want.

  4. Pick the field on that associated model to display (for example, Phase).

  5. Save the column to the table's view so it persists for everyone using that view.

Group by a Joined Column

You can group a table or widget by a joined column, just like a column on the row's own model. For example, in a table of End Users that associate up to a Company, group by the Company's Phase to see End Users organized by that Phase.

When to use a joined column vs. a formula field

A joined column reads a field from the single record a row points to. It can't run the other way, from a record back to the many records that point at it. To summarise the many records that point back to a row, use a formula field instead.

For example, on a table of Companies you can't add a joined column listing each Company's Conversations. A Company points to many Conversations, and a joined column can only read one related record. To bring that information onto the Company row, use a formula field to aggregate: for example, count of Conversations.

If a row points to one record, you can use a joined column. If it points to many, roll them up with a formula field.

A joined column displays an associated field; filtering a table by an associated field selects rows by it. They're set up separately.

Limits

  • Read-only. A joined column shows the value but can't edit it — change it on the source record.

  • Up to two associations deep. A joined column can reach a field up to two associations away from the row's model (for example, Contract → Company → account Owner).

Did this answer your question?