Left join (Sätze mit fehlenden Werten = NULL) ist korrekt.

Aber:
Sobald du in der Where-Klausel Felder der gejointen Tabelle ansprichst, machst du automatisch einen "inner join" daraus.

In der Where-Klausel müsstest du z.B.
a) ... (MyField is null or myField <> 0) ..
b) coalesce(MyField, 0) <> 0
verwenden.