Combine Related Data in New Ways with Joins

You can now use a join to combine two sets of data, including datasets and connected objects. Unlike the existing lookup feature that only returns one matching record when there are multiple matches between the sets of data, a join returns all matching records.

Where: This change applies to Einstein Analytics in Lightning Experience and Salesforce Classic. Einstein Analytics is available in Developer Edition and for an extra cost in Enterprise, Performance, and Unlimited editions.

When: This feature is being added on a rolling basis during the Summer ’19 release.

Why: Analytics offers different join types that allow you to control which records are returned.
Join Type Description
Left join Like a lookup, a left join includes all rows from the left and only matching rows from the right. Unlike a lookup, a join includes all matched rows in the target when multiple rows match.
Right join A right join includes all rows from the right and only matching rows from the left. The join includes all matched rows in the target when multiple rows match.
Inner join An inner join includes only matching rows from the left and right. The join includes all matched rows in the target when multiple rows match.
Full outer join A full outer join includes all rows from the left and right, regardless of whether they have matches. The join includes all matched rows in the target when multiple rows match.
How: In a recipe, click the Add Data button (Add Data button) and select a dataset or connected object from which you want to get more data. Then select the join type (1), specify the keys (2), and select the columns that you want to add to the recipe (3).
Select the join top along the top, then the lookup keys and columns on the left side.

If the keys have duplicate values, the target dataset can become significantly larger than the input data streams. For instance, if 10,000 records on the left and 5,000 on the right share the same key value, the join creates 50 million (10,000*5,000) records in the target dataset. To return one record for each matched key value, use a lookup instead of a join. If you must use a join, add more key fields to ensure more unique key values.