Summary
A joined column shows a field from an associated ("parent") model in a data table, so a value that lives one association away appears inline on each row.
You can group a table or widget by a joined column, and save the column to the table's view.
Joined columns are read-only in the table, and reach up to two associations away.
Joins pull down only: a column shows a field from the record a row points up to (its parent). To bring a parent's child or related records onto its row, use a formula field instead.
Who is this Article for?
Planhat builders and admins who build tables, views, and widgets for their team (for example, CS Ops).
Series
This article is part of a series on Custom Models:
Creating and managing custom models · create a model, add fields, set permissions, previews, and profiles
Custom associations · associate records across models, *primary* associations, and many-to-many (junction models)
Salesforce integration for custom models · mirror a Salesforce object into a model
Joined tables · show an associated model's field as a column ⬅️ You are here
Custom Models FAQ · common questions
Article Contents
Click below to jump to the relevant section:
Introduction
A record usually needs context that lives on a model it associates to: the Company a Deal belongs to, that Company's tier or region, the owner of the account above it. You could copy those values onto each record, but copies drift and add fields to maintain.
A joined column avoids that. It pulls a field from an associated model onto each row of a data table, live, so the current value shows inline without leaving the table and without a duplicated field. Because the value is read through the association, it stays correct as the source record changes.
This builds on associations, so it helps to be familiar with custom associations first. To aggregate across many associated records rather than display one field, see formula fields.
Add a Joined Column
In a data table, add a column.
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.
Pick the field on the associated model to display. Its value renders in the column for each row.
Save the column to the table's view so it persists for anyone using that view.
Group by a Joined Column
You can group by a joined column in tables and widgets, the same way you group by a column on the row's own model. For example, in a table of contracts that associate up to a Company, group by the Company's region to see contracts organised by region.
Showing a Parent's field, not its child Records
A joined column surfaces a field from a record the row points up to, its parent. It does not surface a parent's child records the other way. For example, on a Company or Enduser table you cannot add a joined column that lists that record's Conversations, because Conversations point up to the Company or Enduser, not the other way around.
A junction model does not work around this: it does not reduce the number of associations between the two models. To bring information about a parent's child records onto the parent's row, use a formula field to aggregate across them (for example, count or sum the associated records). See formula fields.
Joined columns are also distinct from filtering a table by an associated model's field. A joined column displays an associated field; filtering selects rows by one. They are set up separately.
Limits
Read-only. A joined column shows the associated field's value but cannot edit it. Change the value on the source record.
Two associations deep. A joined column can reach up to two associations away from the row's model.
Down the association path only. See Showing a parent's field, not its child records.


