π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
πPython Decorators Introduction
Build one mental model for Python decorators that covers closures, argument passing, functools.wraps, and stacking β then ship a working caching or logging decorator from scratch in under 30 lines.
π¦Rust Lifetimes Explained
Stop reading `'a` as line noise and start reading it as scope arithmetic β one failing snippet at a time β until you can thread lifetimes through a small parser or iterator adapter without fighting the borrow checker.
βΈοΈKubernetes Core Concepts
Stop drowning in 30+ resource types. Build the mental model one primitive at a time -- pods, deployments, services, ingress, config -- then deploy a real app with rolling updates and health checks.
πBig O Intuition
Stop treating Big O as math you memorized for an interview β build the intuition to spot O(nΒ²) disasters, pick the right data structure without thinking, and rewrite a slow function from O(nΒ²) to O(n) in under five minutes.