Table Joins may Change When followed by an Inner Join in Tableau Desktop

Published: 10 May 2018Last Modified Date: 11 May 2018

Issue

When creating joins in the Tableau Desktop data canvas, the underlying SQL that Tableau Desktop sends out to the database may unexpectedly alter joins that are configured within the canvas.

Examples:

When creating an outer join followed by an inner join, the full outer join becomes a right join.

When creating a left join followed by an inner join, the left join becomes an inner join.

Environment

Tableau Desktop

Resolution

Try one of the following workarounds:

Change the order of the joins so that the inner join is first.

Use custom SQL that declares the joins as desired (as the order of operations in custom SQL is not the same as the connector canvas.)

Cause

This is expected behavior with Tableau Desktop due to the order of operations in which Tableau Desktop executes joins. Think of it as a math problem:

( [Table 1] Left/Outer Join [Table 2] ) Inner Join [Table 3]

When using an inner join last, any records that do not match with the first join expected to bring in larger amounts of data (left or outer) will be cut down to a smaller join due to inner join only bringing in matching records from both tables, and as such transforming the first join to a join that matches that behavior (i.e. right/inner).
Did this article resolve the issue?

Thank you for providing your feedback on the effectiveness of the article.