delete 문에서 헷갈리는 부분이 있습니다. 0 1 1,418

by 스파이 [2016.06.02 11:59:58]


SELECT C.* FROM 
                PM5010 A,
                PM5230 B,
                PM5210 C
            WHERE
                A.C_CD='10'
                AND A.C_CD = B.C_CD
                AND B.C_CD = C.C_CD
                AND A.EVU_STD_ID = B.EVU_STD_ID
                AND B.EVU_STD_ID = C.EVU_STD_ID
                AND B.EMP_EVU_NO = C.EMP_EVU_NO
                AND A.EVU_TYPE='UPZ'
                AND B.ORDER_NO='0'
                --AND B.EVU_EMP_ID='3952907'
                AND C.EVU_STD_ID='2016042001'     

이 쿼리에서 C 부분에 해당 하는 내용을 모두 삭제 하려고 하는데...

DELETE 문 안에 IN을 쓰면 데이터가 너무 많다고 나옵니다.

이럴 경우 어떻게 해야 많은 데이터를 동시에 삭제를 할 수 있을까요?

간단한거 같은데... 갑자기 머리가 안돌아가는건지... ㅠㅠ

EXISTS를 쓰게 되면 C에 있는 내용이 전부 DELETE 됩니다.

조언 부탁드립니다.

by 스파이 [2016.06.02 12:07:25]
DELETE FROM
PM5210 AA
WHERE
AA.EMP_ID IN(SELECT B.EVU_EMP_ID FROM 
                PM5010 A,
                PM5230 B
            WHERE
                A.C_CD='10'
                AND A.C_CD = B.C_CD
                AND A.EVU_STD_ID = B.EVU_STD_ID
                AND A.EVU_TYPE='UPZ'
                AND B.ORDER_NO='0'
                --AND B.EVU_EMP_ID='3952907'
                AND B.EVU_STD_ID='2016042001')
AND AA.EVU_STD_ID='2016042001'  

아... 이런 세상에... 쉽게 만들어지는데 

ㅠㅠ 갑자기 멘붕이 와서 그런가... 하아...

해결 되었습니다 ㄷㄷ;;; 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입