An inner JOIN keeps only rows that match on both sides. A LEFT JOIN keeps every left row and fills the right side with NULL when nothing matches.