Joining tables in Tableau combines rows from related tables by matching one or more fields, such as Customer ID, Order ID, or Region. A Tableau join creates one fixed table before the data is analyzed.
In current versions of Tableau, relationships are the default method for combining tables. To create a traditional join, open a logical table and add the tables inside its physical layer. This tutorial explains that process, the four Tableau join types, and the checks you should perform to avoid missing or duplicated data.
See the main Tableau Tutorial for related Tableau lessons.
How Tableau Joins Combine Related Tables
A join matches records from two physical tables according to a join clause. A join clause contains:
- A field from the left table
- A comparison operator, usually equals
- A corresponding field from the right table
For example, an Orders table and a Customers table can be joined using Customer ID when that field is available in both tables. Tableau then creates a combined row structure containing columns from the two tables.
The fields used in the join should represent the same value and use compatible data types. A numeric customer identifier should not be joined directly to a text field unless the data is converted to a compatible type.
Tableau Relationships versus Physical Table Joins
Relationships and joins both connect tables, but they operate differently in the Tableau data model.
| Tableau relationships | Tableau joins |
|---|---|
| Defined between logical tables | Defined between physical tables |
| Keep tables separate until fields are used in an analysis | Merge tables into one fixed row-level table before analysis |
| Do not require a fixed join type | Require an inner, left, right, or full outer join type |
| Better suited to tables with different levels of detail | Useful when columns must be combined into a predictable row structure |
| Reduce many common duplication and data-loss problems | Can duplicate rows or exclude unmatched records, depending on the data and join type |
Use a relationship for most multi-table analysis, especially when the tables have different levels of detail. Use a join when you deliberately need a fixed combined table, a particular join type, or row-level columns from both tables in the same logical table.
Open the Tableau Physical Layer for Joining Tables
Follow these steps in the Data Source page of Tableau Desktop or Tableau web authoring:
- Connect to the database, spreadsheet, or other supported data source.
- Drag the first table to the data model canvas. This creates a logical table.
- Double-click the logical table, or open its menu and select Open, to enter the physical layer.
- Drag the second table into the physical-layer join canvas.
- Select the join icon between the two tables.
- Choose the required Tableau join type.
- Configure one or more join clauses using matching fields from the tables.
- Review the data grid to verify the resulting rows and values.
- Close the join dialog and return to the logical data model when the join is correct.
The following images show the earlier Tableau connection workflow. The placement and labels of controls may differ in a current Tableau release, but the underlying requirements remain the same: select the tables, choose matching fields, and define a join type.
- Select the table or view you want to start with (typically the fact table) and then select the Multiple Tables option

- Click the Add New Table button at the bottom of the dialog box.

- In the Add Table dialog box, select a table to add to the Data window.

- Optionally change Field aliases.
Field aliases change how values are displayed without changing the underlying join key. Use clear field names and aliases to distinguish similarly named fields, but verify that the join itself uses the correct original fields.
- Add a join by selecting the Join tab.
Tableau may suggest a join clause based on matching field names and data types. Always inspect the suggested fields instead of assuming that the automatic selection represents the intended relationship between the tables.
- In the Join pane, add one or more join clauses by selecting a field from the original table, a field from the added table, and an operator. Then click Add to add it to the list of Join Clauses.
For example, if an orders table and a customer table both contain Customer ID, select Customer ID from each table and use the equal operator. Join on Region only when Region uniquely and correctly represents the required match; otherwise, several records from one table may match several records from the other.

Inner, Left, Right, and Full Outer Joins in Tableau
Tableau supports four primary join types. The available options can depend on the connected data source.
| Tableau join type | Rows included in the joined table | Typical use |
|---|---|---|
| Inner join | Only rows with matching join-key values in both tables | Use when the analysis should include matched records only. |
| Left join | All rows from the left table and matching rows from the right table | Use when every record in the primary left table must remain available. |
| Right join | All rows from the right table and matching rows from the left table | Use when every record in the right table must remain available. |
| Full outer join | All rows from both tables, whether matched or unmatched | Use when unmatched records from both tables must be retained. |
When an outer join retains a row that has no match in the other table, fields from the unmatched side appear as NULL. An inner join removes unmatched rows instead.
- Select the type of Join from the Join Type drop-down list.
- You can select Inner, Left, or Right.
The earlier interface shown above listed Inner, Left, and Right joins. Current supported connections may also provide a Full Outer option. If a join type is unavailable, check whether the database or connector supports it.
Please note, you cannot nest Inner joins within Left or Right joins. These joins will cause a join expression not supported error.
- When finished, click OK.
Join Orders and Customers in Tableau Using Customer ID
Assume the Orders table contains these rows:
| Order ID | Customer ID | Sales |
|---|---|---|
| O-101 | C-1 | 120 |
| O-102 | C-2 | 80 |
| O-103 | C-4 | 150 |
The Customers table contains:
| Customer ID | Customer Name |
|---|---|
| C-1 | Asha |
| C-2 | Daniel |
| C-3 | Mei |
Configure the join clause as Orders.Customer ID = Customers.Customer ID.
- An inner join retains orders O-101 and O-102 because C-1 and C-2 exist in both tables.
- A left join with Orders on the left also retains O-103, but its customer fields are
NULLbecause C-4 has no customer record. - A full outer join retains all three orders and also customer C-3, whose order fields are
NULL.
Prevent Duplicate Rows after a Tableau Join
A join can increase the number of rows when a join key occurs more than once in either table. This commonly happens in one-to-many or many-to-many data.
For example, if one customer has three order rows, joining the customer record to the orders table repeats the customer fields across those three rows. This may be expected. However, if both tables contain several rows for the same key, the resulting many-to-many join can multiply records and inflate measures such as sales or quantities.
Before using joined data in a worksheet:
- Determine the intended level of detail for each table.
- Check whether the join key is unique in either table.
- Compare the row count before and after the join.
- Review totals for important measures before building the final visualization.
- Use multiple join clauses when one field alone does not uniquely identify a record.
- Consider a relationship instead of a join when the tables have different levels of detail.
Fix NULL Values and Missing Records in Tableau Joins
Unexpected NULL values or missing records usually indicate a join-key or join-type issue. Check the following:
- Different data types: Confirm that both join fields use compatible types.
- Extra spaces: Text values such as
"C-1"and"C-1 "do not match exactly. - Different capitalization: The behavior can depend on the database and its collation rules.
- Leading zeros: Values such as
0012and12may not match when stored differently. - Null join keys: A null key does not normally match another null key in a standard equality join.
- Wrong join direction: A left join preserves the left table, while a right join preserves the right table.
- Incomplete join clause: A record may require a combination such as Customer ID and Date rather than Customer ID alone.
Tableau Join, Union, Relationship, or Data Blend
Select the combination method according to the shape of the data and the required analysis.
| Method | Use it when |
|---|---|
| Join | You need to add columns from related physical tables and create one fixed table. |
| Relationship | You need to analyze logical tables independently, particularly when their levels of detail differ. |
| Union | You need to append rows from tables that have compatible column structures, such as monthly files. |
| Data blend | You need to combine separate data sources at the worksheet level in a situation not handled by the data model. |
Tableau Join Editorial QA Checklist
- The tutorial explains that current Tableau joins are created between physical tables inside a logical table.
- The join example uses fields that represent the same value and have compatible data types.
- Inner, left, right, and full outer join results are described accurately.
- The left and right table positions are clear before explaining outer joins.
- The tutorial warns that one-to-many and many-to-many joins can duplicate rows and inflate measures.
- The data grid, row counts, nulls, and measure totals are checked after the join.
- Relationships and unions are distinguished from joins so readers can select the correct method.
Frequently Asked Questions about Joining Tables in Tableau
Where is the join option in current Tableau versions?
On the Data Source page, double-click a logical table to open its physical layer. Drag another physical table into that canvas, and then select the join icon between the tables.
Should I use a relationship or join in Tableau?
Use a relationship for most multi-table analysis, especially when tables have different levels of detail. Use a join when you need a fixed row-level table and deliberately want a specific join type.
Why does a Tableau join create duplicate rows?
Duplicate rows occur when a join key matches multiple records. If both tables have repeated values for the same key, a many-to-many join can multiply the matching records.
Why are values missing after an inner join in Tableau?
An inner join retains only records whose join-key values match in both tables. Records with unmatched, null, differently formatted, or incompatible keys are excluded.
Can Tableau join tables from different databases?
Tableau supports cross-database joins for compatible connections. Availability and supported join types depend on the connectors and data sources involved.
Summary of Joining Tables in Tableau
A Tableau join merges physical tables using matching fields and a fixed join type. Open a logical table to reach the physical-layer join canvas, add the required tables, configure the join clause, and select an inner, left, right, or full outer join. After creating the join, inspect unmatched values, row counts, duplicate records, and measure totals before using the data in a visualization.
TutorialKart.com