Summary
We explored building data models at the physical layer of our data sources in this chapter. We do this by creating joins between the tables in our data model.
We looked at left, right, inner, and full outer joins and how to create them by opening tables in the Tableau canvas. We created a geospatial join using the Intersects
operator, something that is not possible with relationships.
Another use case for using joins over relationships that we covered is to create a data model with row-level security using a security table of usernames joined to the data that we want to secure.
In the final section of the chapter, we explored custom SQL within the scope of how Tableau dynamically creates SQL, concluding that we should use custom SQL sparingly.
In the next chapter, we will be looking at extending and sharing data models and when to use live connections versus extracts.