Keeping the parent regardless
LEFT JOIN is INNER JOIN's gentler cousin: every row from the left table is preserved, even when there's no matching row on the right. Unmatched rows get NULLs in the right-side columns.
The orphan-finder pattern
LEFT JOIN ... WHERE right.id IS NULL finds parents with no children: users who never ordered, posts with no comments, products never reviewed. This pattern shows up in nearly every analytics dashboard.
The ON-vs-WHERE trap
Filters on the right table belong in ON if you want LEFT JOIN to keep its semantics. Putting WHERE o.total > 100 after a LEFT JOIN silently drops rows where there's no order at all (NULL fails the comparison) — turning it back into an INNER JOIN.