Skip to main content

Creating a link between the rows of two tables

The idea. RowShare lets you create links between tables, and more precisely between the rows of a table and those of another table. For example, you can imagine links between orders and customers, ap…

Pierre Collinet
Updated by Pierre Collinet

The idea

RowShare lets you create links between tables, and more precisely between the rows of a table and those of another table.

For example, you can imagine links between orders and customers, appointments and employees, open jobs and applications, tasks and their related projects... Your imagination is the limit.

The link between two tables is materialized by the fact that certain columns of a table are displayed in another table.

The table that provides these columns is called the parent table, the one that displays them the child table, and the columns displayed this way the parent columns.

Back to the example of orders and customers: for each order, a customer is selected. Then some information specific to the customer (such as his address) will appear in Orders table without having to re-enter it. Any update in the Customers table is reflected in real time in the Orders table.

A parent column can in turn be exposed to a third table.

The Orders table displays the customer sector, taken from the Customers table. A Deliveries table linked to Orders can in turn display that sector: the information is entered only once, in the Customers table.

Of course, you need two tables:

  • the parent table: the one that contains the data that you want to display in the child table
  • the child table: the one in which you want to display this data

In the child table, add a "Row from another table" column from the "Lists of choices" category:

The settings of this new column are now displayed. Here are the next steps:

  1. Pick the parent table in the list of tables
  2. Choose the columns you want to display in your child table, then click on the top arrow to select them (here: Client Name and Client Address)

That's it! Return to your table, refresh the page if necessary, and these new columns have been added to your table. Of course, they're still empty.

Advanced options: filter and sort available rows

When selecting a row from the parent table, the list can sometimes be long. You can narrow it down and/or sort it to make it easier to find the row you are looking for, using the Advanced options in the column settings.

Accessing advanced options In the settings of the "Row from another table" column, click Advanced options to reveal two additional fields: Filter and Sort.

Filtering available rows The Filter field lets you restrict which rows from the parent table appear in the selection popup. The value must be entered in the following format (JSON): [{"col": "ColumnName", "val": ["Value1", "Value2", ""]}] The filter applies to a single column of the parent table:

  • col: the exact name of the column in the parent table to filter on
  • val: the list of allowed values. The empty string "" matches rows where this column has no value.

Example: to only show rows where the Client column equals "SoftFluent", "RowShare", or is empty, enter: [{"col": "Client", "val": ["SoftFluent", "RowShare", ""]}]

The filter applies to one single column, with as many values as needed. To filter on two criteria, add to the parent table a column that combines them, for instance Type and Status, and filter on that column.
The filter only applies when a row is selected. If a parent row stops matching the filter, the child rows already linked to it keep their link and the values displayed.

Sorting available rows The Sort field defines the order in which rows appear in the selection popup. Simply enter the exact name of the column in the parent table to sort by.

Example: to sort the choices alphabetically by the Client column, enter: Client

Filtering and sorting are independent: you can use either one, both, or neither.

Then: Connect rows

The selected columns have been added to the far right of the table, under a column group header. You can move them by dragging the group header. If you drag just one of the new columns, it will move within the column group.

In one of these new columns, double-click on a row to choose a row from the parent table. RowShare shows you a summary of each row in the parent table. Of course, you will only be shown the rows you have access to. Do not hesitate to use the search bar to find your row.

Back to our Customer/Order example: in the Orders table, double-click on your new Customer columns. Then select a customer from the list. ​
RowShare will not let you create a loop: a table that links to a table that links to the first table (even with additional tables between). For example, if the Orders table references the Clients table, then the Client table can't reference the Orders table.

How did we do?

How to configure your RowShare columns?

Contact