---
schema_version: "1"
id: ea1813e97850ceecabd104559e8c42da11696313a25bc7ccf942aebaf8030426
title: Cross Join
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/data/264-0-0/c360_a_batch_transform_join_crossjoin.md
canonical_url: https://help.salesforce.com/s/articleView?id=data.c360_a_batch_transform_join_crossjoin.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 7adda3bbbb45ed72e5c92875e15caf13b7263705296d18f3e52af6b744edcb04
description: A cross join combines unrelated records and includes all rows from the left and the right input data source objects. Unlike other joins that use keys to find matches, the cross join pairs every row from one data source with every row of another data source.
products:
  - Data 360
release: "264"
---
# Cross Join

A cross join combines unrelated records and includes all rows from the left and the right input data source objects. Unlike other joins that use keys to find matches, the cross join pairs every row from one data source with every row of another data source.

![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-data-data_cloud-264-0-0-production-enus/f3569962-3c9b-4f83-9d0c-b6a574e785da/images/icon_tip.png)

Tip When designing a cross join, use the larger object first (left) and then join the smaller one (right). For example, join a:

- 10,000-row input source (left) with a 1,000-row input source (right)
- 20,000-row input source (left) with a 500-row input source (right)
- 40,000-row input source (left) with a 250-row input source (right)
- 100,000-row input source (left) with a 100-row input source (right)

![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-data-data_cloud-264-0-0-production-enus/f3569962-3c9b-4f83-9d0c-b6a574e785da/images/icon_example.png)

Example

A company sells products at various locations. To assist with stock tracking, use a cross join to combine the product and store data to find all the possible pairs of product and store.

To illustrate how this join combines unrelated records, row number is included for reference but isn’t needed in the data.

![The left data stream shows the row number and product. The right data stream shows the row number and store.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-data-data_cloud-264-0-0-production-enus/f3569962-3c9b-4f83-9d0c-b6a574e785da/resources-global/analytics/images/bi_integrate_data_prep_recipe_transformation_crossJoin_dataStreams.png)

After performing the cross join, the batch data transfrm produces this output.

![The new dataset contains columns from both data streams.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-data-data_cloud-264-0-0-production-enus/f3569962-3c9b-4f83-9d0c-b6a574e785da/resources-global/analytics/images/bi_integrate_data_prep_recipe_transformation_crossJoin_results.png)

**Limitations for Cross Join**

Because a cross join creates a larger output than either of the input data sources, it has some limitations. Keep these points in mind when designing and testing your cross join.

- Only one cross join per data transform
- Cross join results maximum of 10 million
- Left object field (column) maximum of 8 and row maximum of 100,000
- Right object field (column) maximum of 8 and row maximum of 1,000
- Doesn’t support multivalue fields