Dessa användare kommer tillbaka men de kommer tillbaka som null för alla kolumner som returneras i tabellerna där den vänstra kopplingen inte hittade en korrekt koppling.
På grund av hur ANSI-nullvärden fungerar kommer b4_.ACTIVE=1 att vara ogiltiga för dessa poster eftersom null <> 1
Försök att strukturera om ditt where-block enligt följande:
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)
Ett annat sätt att tackla detta är att lägga till förutsättningarna för dina vänstra kopplingar. Du kan göra som jag gjorde nedan och det kommer att utesluta märken där ACTIVE <> 1 exkluderar märken och fortfarande returnera alla användare.
left outer join
REWARD.BADGES b4_
on bl3_.BADGEID=b4_.ID
AND b4_.ACTIVE=1