---
schema_version: "1"
id: de4182515062e42e6f0bf153bc01e34c4edd02bb804ab4b99145f5c8a7590e77
title: Join Operations
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/analytics/264-0-0/bi_integrate_recipe_join_operations.md
canonical_url: https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_recipe_join_operations.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 0b9c05197de079187894d2c8ebf9da332ff5dee7cca7e7a4c3c8b2f6a0abcb9f
description: Data Prep supports these join operations.
products:
  - CRM Analytics
  - Cross Cloud
release: "264"
---
# Join Operations

Data Prep supports these join operations.

- **[Lookup](https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_recipe_join_lookup_multivalue.htm&release=264.0.0&type=5)**  
    In CRM Analytics, a lookup returns all rows from the left data stream (recipe data) and only matching rows from the right data stream (lookup source). If multiple matches are found in the right data stream, you can set the lookup to return either a single row or all matching rows. To ensure that the grain of the results doesn’t change, the lookup outputs one row for each row in the left data stream.
- **[Left Join](https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_data_prep_recipe_transformation_leftjoin.htm&release=264.0.0&type=5)**  
    Like a lookup, a left join in CRM Analytics includes all rows from the left (recipe data) 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](https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_data_prep_recipe_transformation_rightjoin.htm&release=264.0.0&type=5)**  
    A right join in CRM Analytics includes all rows from the right and only matching rows from the left (recipe data). The join includes all matched rows in the target when multiple rows match.
- **[Inner Join](https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_data_prep_recipe_transformation_innerjoin.htm&release=264.0.0&type=5)**  
    In CRM Analytics, an inner join includes only matching rows from the left (recipe data) and right. The join includes all matched rows in the target when multiple rows match.
- **[Full Outer Join](https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_data_prep_recipe_transformation_fullouterjoin.htm&release=264.0.0&type=5)**  
    In CRM Analytics, a full outer join includes all rows from the left (recipe data) and right, regardless of whether they have matches. The join includes all matched rows in the target when multiple rows match.
- **[Cross Join](https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_data_prep_recipe_transformation_crossjoin.htm&release=264.0.0&type=5)**  
    In CRM Analytics, a cross join combines unrelated records and includes all rows from the left (recipe data) and the right. Unlike other joins that use keys to find matches, the cross join pairs every row from one dataset with every row of another dataset (known as the Cartesian Product).
- **[Considerations When Using Joins](https://help.salesforce.com/s/articleView?id=analytics.bi_integrate_data_prep_recipe_transformation_joinconsiderations.htm&release=264.0.0&type=5)**  
    In CRM Analytics, unlike a lookup, a join creates a separate record for each match in the target dataset when multiple rows match. Before using a join, ensure that you understand the implications of duplicate rows.