태그

2014년 12월 8일 월요일

sql delete from nested select



sql delete from nested select


join해서 delete할 대상을 구하기 위해 nested query를 사용할 때 주의해야한다.



declare @t1 table (n int)
insert @t1 values(1)
insert @t1 values(2)
insert @t1 values(3)


declare @t2 table (n int)
insert @t2 values(1)
insert @t2 values(2)
insert @t2 values(3)


--이렇게 하면 의도대로 3만 지워질까?
delete @t1
from (
   select *
   from @t1
  ) x
where x.n=3


--이렇게 하면?
delete @t2
from (
   select *
   from @t2
   where n=3
  ) x


select * from @t1
select * from @t2


--result:Nothing...!
--아무것도없다!



댓글 없음:

댓글 쓰기