SELECT a.foo b.bar c.foobar FROM tableOne AS a INNER JOIN tableTwo AS b ON a.pk = b.fk LEFT JOIN tableThree AS c ON b.pk = c.fk WHERE a.foo = \'something\' AND c.foo
The joins are doing their work, then the where is removing the records where c.foobar <> 'somethingelse'.
The effect looks like an inner join but actually isn't.