Die gebruikers komen wel terug, maar ze komen terug als null voor alle kolommen die zijn geretourneerd in de tabellen waar de linker join geen goede join heeft gevonden.
Vanwege de manier waarop ANSI-nulls workb4_.ACTIVE=1 ongeldig zijn voor deze records omdat null <> 1
Probeer je waar-blok als volgt te herstructureren:
AND (b4_.ACTIVE=1 or b4_.ACTIVE is null)
AND (B4_.STATUS='A' or B4_.STATUS is null)
AND (UB2_.VISIBLE=1 or UB2_.VISIBLE is null)
and (bl3_.ACTIVE=1 or bl3_.ACTIVE is null)
Een andere manier om dit aan te pakken, is door de vereisten toe te voegen aan uw linker joins. Je kunt doen zoals ik hieronder heb gedaan en het zal de badges uitsluiten waar ACTIEF <> 1 slechte badges uitsluit en toch alle gebruikers teruggeven.
left outer join
REWARD.BADGES b4_
on bl3_.BADGEID=b4_.ID
AND b4_.ACTIVE=1