I have a blog on this exact topic, take a look
Why LEFT JOIN does not bring all records from the LEFT table That's a good blog post. I meant to post this earlier, but unfortunately Charles beat me to it.
I cover this topic with students (how a WHERE clause can negate the intended impact of a LEFT JOIN), and I'm going to redirect them to your blog post.