---
schema_version: "1"
id: 670def287f7817540fb7578973abd90c6ffbb2913bdd429e4378b8379f4cf202
title: Inner 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_innerjoin.md
canonical_url: https://help.salesforce.com/s/articleView?id=data.c360_a_batch_transform_join_innerjoin.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 54517e6f0c95d474a0be774ae576bd0b0fa91e674c94a3f32f2d4600692316ae
description: An inner join includes only matching rows from the left and right input data source objects. The join includes all matched rows in the output data when multiple rows match.
products:
  - Data 360
release: "264"
---
# Inner Join

An inner join includes only matching rows from the left and right input data source objects. The join includes all matched rows in the output data when multiple rows match.

![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

Our company's marketing team captures demographic data in an external data source for opportunities stored in Salesforce. To compare opportunities by education level of the customer, let’s first combine both sets of data using an inner join.

To illustrate how this batch data transform function handles unmatched rows and duplicate keys, we included them in both input data sources.

![The left data stream shows the opportunity ID, customer name, and opportunity amount. The right data stream shows the opportunity ID and educational level.](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_recipeTransformations_innerJoin_dataStreams.png)

After performing the inner join based on the matching keys, the batch data transform produces the following output data.

![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_recipeTransformations_innerJoin_results.png)

All rows that have a match are included in the output. Because of multiple matches, you see two records with `Opp_ID` 2 (Amy and Bob) and two records with `Opp_id` 1 (High School and Secondary School). Notice also that `Opp_ID` 4 and `Opp_id` 5 are excluded from the target because neither have a match.