Join tables with INNER JOIN and LEFT JOIN
Most product questions cut across several tables: accounts and usage, customers and invoices. You learn to join tables in SQL and to find what is missing, such as customers who never used a feature. A skill you can put straight to work on onboarding targeting or churn risk.
Lesson objective
By the end of this lesson, you will be able to combine two or more tables with INNER JOIN and LEFT JOIN on the right key, use table aliases, and find rows without a match (anti-join) to answer questions such as "which accounts have never scheduled an intervention?".
Topics covered
- INNER JOIN
- LEFT JOIN
- anti-join
- SQL join
- table alias
Where it fits
Combine tables
How do I combine several tables without losing rows or inflating my numbers?
Lessons in this module
- Join tables with INNER JOIN and LEFT JOIN (this lesson)
- Join traps, and how to detect them
What you will learn in the course
This lesson is part of the course Model your product’s data and query it with SQL
- Read a data model (tables, primary and foreign keys, cardinalities, entity-relationship diagram) and connect it to the product's screens and rules.
- Model the data of a feature (entities, attributes, relationships, keys, cardinalities) and get the model validated by the engineering team.
- Compare a relational database and a document (NoSQL) database for a product need and justify the choice based on expected queries, consistency and change.
- Write queries that filter, sort and aggregate (SELECT, WHERE, ORDER BY, GROUP BY, HAVING) while handling NULL values and dates correctly.
- Combine several tables with INNER and LEFT joins, and check that the result neither loses nor duplicates any row.
- Turn a product question into a verifiable query, using CTEs and simple window functions (ROW_NUMBER, LAG, SUM OVER).
- Query data read-only while protecting personal data, and have an AI draft SQL while checking every query before using its result.
Related courses
- Git for PMs: ship as a team without putting production at riskAdvanced · ~3 hr 30 min
- Explain how a web product works, from browser to serverAll levels · ~2 hr 30 min
- Design and test an API integration as a PMJunior · ~3 hr