๐Master SQL Joins and Query Relational Data with Confidence
See joins as set operations first, then write every join type against a real schema, tune them with indexes and query plans, and finish by solving ten realistic reporting queries.
Phase 1Joins as Set Operations
See joins as set operations on small tables
A join is set math on two tables
6 minA join is set math on two tables
INNER JOIN keeps only the overlap
6 minINNER JOIN keeps only the overlap
LEFT JOIN keeps every row on the left
7 minLEFT JOIN keeps every row on the left
RIGHT is LEFT backwards; FULL keeps everything
6 minRIGHT is LEFT backwards; FULL keeps everything
Phase 2Every Join Against One Schema
Write every join type against one schema
One schema you'll use for the next five drops
7 minOne schema you'll use for the next five drops
INNER JOIN across three tables at once
7 minINNER JOIN across three tables at once
LEFT JOIN when 'zero' is a valid answer
7 minLEFT JOIN when 'zero' is a valid answer
A table can join itself
7 minA table can join itself
CROSS JOIN multiplies every row by every row
6 minCROSS JOIN multiplies every row by every row
Phase 3Joins, Indexes, and Query Plans
Tie joins to indexes, plans, and performance
Scenario: the join that got slow overnight
8 minScenario: the join that got slow overnight
Scenario: every join column needs an index โ or does it?
8 minScenario: every join column needs an index โ or does it?
Scenario: filter in ON or filter in WHERE?
8 minScenario: filter in ON or filter in WHERE?
Scenario: the row count that doubled mysteriously
8 minScenario: the row count that doubled mysteriously
Phase 4Ten Realistic Reporting Queries
Solve ten realistic reporting queries end-to-end
Ten reporting queries against a real-looking schema
25 minTen reporting queries against a real-looking schema
Frequently asked questions
- What's the difference between INNER JOIN and LEFT JOIN?
- This is covered in the โMaster SQL Joins and Query Relational Data with Confidenceโ learning path. Start with daily 5-minute micro-lessons that build from fundamentals to hands-on application.
- When should I use a FULL OUTER JOIN?
- This is covered in the โMaster SQL Joins and Query Relational Data with Confidenceโ learning path. Start with daily 5-minute micro-lessons that build from fundamentals to hands-on application.
- Why is my LEFT JOIN returning duplicate rows?
- This is covered in the โMaster SQL Joins and Query Relational Data with Confidenceโ learning path. Start with daily 5-minute micro-lessons that build from fundamentals to hands-on application.
- How do indexes affect join performance?
- This is covered in the โMaster SQL Joins and Query Relational Data with Confidenceโ learning path. Start with daily 5-minute micro-lessons that build from fundamentals to hands-on application.
- What does a CROSS JOIN actually do?
- This is covered in the โMaster SQL Joins and Query Relational Data with Confidenceโ learning path. Start with daily 5-minute micro-lessons that build from fundamentals to hands-on application.
Related paths
๐ณDocker Containers Basics
Build the mental model first, then the commands โ from containers vs VMs through images, layers, volumes, and networking to composing a multi-service app.
๐งชProperty-Based Testing
Go beyond example-based tests โ learn to express what your code should always do, then let a framework find the inputs that break it.
๐ฆRust's Ownership Model
Build a working mental model of Rust's ownership system โ from stack vs heap intuition through borrow checker mastery โ so you can read and write Rust without fighting the compiler.
๐ปElixir Pattern Matching
Stop reading `=` as assignment and start using it as Elixir's core flow-control tool โ through function heads, guards, and `with` โ until you can rewrite a tiny command parser without a single `if`.