How to Join Data in Tableau
Combining different datasets is fundamental to uncovering deeper insights, and in Tableau, the primary method for this has long been using joins. Understanding how to correctly join your data tables is the difference between a messy, inaccurate visualization and a powerful, insightful dashboard. This article will walk you through exactly what joins are, the different types you can use, and how to create them step-by-step in Tableau.
What Exactly is a Join in Tableau?
Think of joins as a way to stitch together related pieces of information that live in different tables. Imagine you have two separate lists: one contains customer information (like names and email addresses) and another contains every order placed (with an order ID and amount). Neither list on its own tells the full story.
By joining them on a common piece of information - like a Customer ID that exists in both tables - you can create a single, combined table. This new "master table" lets you see which specific customer placed which order, allowing you to analyze things like total spending per customer or identify your most valuable clients. In essence, joins let you create a wider dataset that contains columns from multiple original tables, giving you a more complete view of your data.
Before You Join: A Quick Data Prep Checklist
Jumping straight into joining without checking your data is a recipe for errors and confusing results. Before you start dragging and dropping tables, taking a few moments to prepare can save you hours of frustration.
- Identify the Common Field (the "Key"): For two tables to be joined, they must share at least one field in common. This is often an ID, like a
CustomerID,OrderID, orSKU. This field is the "key" that Tableau will use to match rows from one table to another. - Check Data Types: The common fields you join on must be the same data type. You can't join a field that's formatted as a number in one table to a field that's formatted as text in another, even if the values look the same. You can easily change a field's data type in Tableau's Data Source pane by clicking the icon next to its name (e.g.,
#for numbers,Abcfor strings). - Look for Inconsistent Naming: Sometimes the key has a different name in each table, like
Cust_IDin one andCustomer Gp_idin another. That's okay, as long as the values within the field are consistent and you can manually tell Tableau that these two fields are what you want to join on.
The 4 Types of Joins Explained
Tableau offers four types of joins, each represented by a Venn diagram symbol. Which one you choose depends entirely on what question you're trying to answer and which records you want to keep in your final dataset.
Let's use a simple example. We have a customers table with a list of all our customers, and an orders table with a list of all orders placed.
Example customers Table:
- Customer_ID: 101, Name: Anne
- Customer_ID: 102, Name: Ben
- Customer_ID: 103, Name: Carol (Hasn't ordered yet)
Example orders Table:
- Order_ID: 5001, Customer_ID: 101, Amount: $50
- Order_ID: 5002, Customer_ID: 102, Amount: $75
- Order_ID: 5003, Customer_ID: 101, Amount: $25
1. Inner Join
An Inner Join is the most restrictive. It returns only the rows that have a match in both tables. Think of it as the "intersection" of your two datasets.
- What it does: Keeps only the perfectly matched records. Any customer who hasn't placed an order is excluded. Any order that doesn't correspond to a valid customer is also excluded.
- Our Example: An inner join between
customersandordersonCustomer_IDwould return three rows: Anne's two orders and Ben's one order. Carol would not be included because she doesn't appear in theorderstable. - When to use it: When you only care about data where a clear relationship exists in both tables, such as analyzing the behavior of customers who have definitely made a purchase.
2. Left Join
A Left Join keeps all the rows from your "left" table (the first one you select) and brings in any matching rows from the "right" table. If there's no match, the columns from the right table will show up as null.
- What it does: Keeps all records from the left table, regardless of whether they have a match on the right.
- Our Example: With
customersas our left table, a left join toorderswould return all three customers. Anne and Ben would have their order details listed next to their names. Carol, who hasn't ordered, would also be in the list, but her order fields (Order_ID,Amount) would benull. - When to use it: This is one of the most common joins. It's perfect for when you want to look at a complete list of something (like all customers, or all products) and see which ones have corresponding activity (like sales or website visits).
3. Right Join
A Right Join is the mirror image of a Left Join. It keeps all the rows from the "right" table and brings in any matching rows from the "left." If there's no match, the columns from the left table will be null.
- What it does: Keeps all records from the right table.
- Our Example: A right join with
customerson the left andorderson the right would return results identical to our inner join because every order in our table has a corresponding customer. If we had anOrder_ID5004 with a badCustomer_IDthat didn't exist in thecustomerstable, a right join would keep that order and just shownullfor the customer's name. - When to use it: It's less common than a left join but is useful when your primary focus is on the table on the right — for instance, if you want to analyze every single order and see which ones you can match back to your customer list.
4. Full Outer Join
A Full Outer Join is the most inclusive. It keeps all the rows from both tables and puts null values where matches don't exist on either side.
- What it does: Gives you every record from both tables, connected where a match exists.
- Our Example: With
customersandorders, a full outer join would show all three customers and all three orders. Carol would be included withnulls in the order fields. If we had an "orphan" order with an invalid customer ID, it would also be included withnulls in the customer fields. - When to use it: When you need a complete picture of two datasets and want to see everything, including records that don't match up. This can be great for data auditing and identifying gaps or mismatches between two tables.
How to Create a Join in Tableau: A Step-by-Step Guide
Now that you know the theory, let's put it into practice. Creating a join in Tableau happens on the Data Source page.
- Connect to Your Data: Start a new Tableau project and connect to your data source, whether it's an Excel file, a Google Sheet, or a database server.
- Drag Your First Table to the Canvas: From the sidebar on the left, find your first table (this will be your "left" table) and drag it into the canvas area that says "Drag tables here."
- Drag Your Second Table: Now, find the second table you want to join and drag it onto the canvas, placing it to the right of the first table.
- Tableau's Automatic Join: Tableau is smart! It will often automatically detect the common field and create an inner join for you. You'll see a line - often called a "noodle" - connecting the two tables, and a Venn diagram symbol will appear, representing the join.
- Configure the Join: Click on the join symbol (the Venn diagram). A configuration box will pop up. This is where you take control.
- Review the Results: Below the join configuration, Tableau shows you a preview of the resulting combined table. Scroll through it to see if it makes sense. Are you seeing the
nullvalues you expect with a left join? Does the number of rows seem correct? This preview is your best friend for catching mistakes early.
Common Pitfall: Duplicated Rows
One of the most common issues with joins is accidental data duplication. This happens when a single row in your left table matches multiple rows in your right table. In our example, Customer_ID 101 (Anne) was in the customers table once, but she had two orders in the orders table. After an inner or left join, Anne's customer information would appear twice in our new combined table, once for each order.
This isn't necessarily an error - it can be the correct behavior. But if you're not careful, summing a "Sales" column could accidentally double-count revenue. Always be mindful of the granularity of your tables and how a join might affect your aggregate calculations like SUM() or COUNT().
Joins vs. Relationships vs. Blending
If you're using a newer version of Tableau, you might notice that when you drag tables to the canvas, Tableau creates an orange "noodle" and calls it a "Relationship" instead of a join. What's the difference?
- Joins: As we've discussed, joins physically merge tables into a single, new table before analysis starts. The structure is fixed.
- Relationships: This is Tableau's newer, more flexible method. Instead of creating a fixed table, you simply tell Tableau how the tables are related (e.g.,
customers.Customer_IDrelates toorders.Customer_ID). Tableau keeps the tables separate and intelligently figures out the right join type on the fly based on the fields you use in a specific chart. Relationships help prevent many of the data duplication issues common with joins. For most use cases, relationships are now the preferred method. - Blending: Data blending is used for a different purpose altogether. It's for when your data lives in completely different, published data sources (e.g., Google Analytics data and a SQL server database). You can't join them, but blending lets you bring aggregated data from a secondary source into a primary one.
Final Thoughts
Understanding and correctly implementing joins is a core skill for any Tableau user. It unlocks the ability to combine disparate datasets and build a holistic view of your business, turning raw data into valuable, actionable insights. By choosing the right join - be it inner, left, right, or full outer - you control exactly how that final dataset is constructed.
While mastering data connections in tools like Tableau is a powerful skill, it often comes with a steep learning curve of setting up data sources, cleaning fields, and troubleshooting complex joins. We built Graphed to remove this friction. Instead of manually stitching tables together, you can connect platforms like Google Analytics, Salesforce, and Shopify in seconds. Then, you can simply ask in plain English, "Show me my sales revenue by marketing campaign," and Graphed handles joining the data behind the scenes to give you an instant, real-time dashboard.
Related Articles
How to Connect Facebook to Google Data Studio: The Complete Guide for 2026
Connecting Facebook Ads to Google Data Studio (now called Looker Studio) has become essential for digital marketers who want to create comprehensive, visually appealing reports that go beyond the basic analytics provided by Facebook's native Ads Manager. If you're struggling with fragmented reporting across multiple platforms or spending too much time manually exporting data, this guide will show you exactly how to streamline your Facebook advertising analytics.
Appsflyer vs Mixpanel: Complete 2026 Comparison Guide
The difference between AppsFlyer and Mixpanel isn't just about features—it's about understanding two fundamentally different approaches to data that can make or break your growth strategy. One tracks how users find you, the other reveals what they do once they arrive. Most companies need insights from both worlds, but knowing where to start can save you months of implementation headaches and thousands in wasted budget.
DashThis vs AgencyAnalytics: The Ultimate Comparison Guide for Marketing Agencies
When it comes to choosing the right marketing reporting platform, agencies often find themselves torn between two industry leaders: DashThis and AgencyAnalytics. Both platforms promise to streamline reporting, save time, and impress clients with stunning visualizations. But which one truly delivers on these promises?