sql server 2008 - SQL- Left Join to Replace Not in -
i'm trying replace not in using left join reason couldn't desired result.
here original query
create table #versions ( ruleid int, isdraft int ) -- prod #versions insert #versions values (1, 0) insert #versions values (2, 0) -- deleted -- draft version insert #versions values (1, 1) -- changed added original code (this should give '2'):
-- getting rules deleted select distinct vp.ruleid #versions vp vp.isdraft = 0 except select distinct vd.ruleid #versions vd vd.isdraft = 1 changed code:
select vp.ruleid #versions vp left join #versions vd on vd.ruleid = vp.ruleid , vp.isdraft = 0 , vd.isdraft = 1 am missing something...???
please advice.
thanks.
if want use , anti -join you'll need 2 things
1) test right side of join see if values null
2) don't include filters on left side in join
select vp.ruleid #versions vp left join #versions vd on vd.ruleid = vp.ruleid , vd.isdraft = 1 vp.isdraft = 0 , vd.ruleid null
Comments
Post a Comment