2013-06-19 2 views
0

는 예를 들어 내 바이올린을 참조하십시오 다른 열에서 값을 기준으로 기록을 삭제SQL은 :

http://sqlfiddle.com/#!3/1aaea/1

내 목표는 'Y'의 더 마이그레이션 값이없는 모든 공급 업체를 삭제하는 것입니다. 따라서 필자의 바이올린의 경우 공급 업체 B와 D 만 삭제해야합니다. migrate = 'n'인 모든 공급 업체를 삭제하는 방법에 어려움을 겪고 있지만 migrate = 'n'값을 가지고 있어도 migrate = 'y'인 공급 업체는 그대로 두십시오.

migrate = 'y'인 공급 업체를 포함하고 포함하지 않는 공급 업체를 제외하려면 어떻게해야합니까? 내가 너무 열심히 생각하고 그리고 대답은 바로 내 코 아래 같은 느낌

....

답변

1

당신은 where 절에 조건을 테스트하여이 작업을 수행 할 수 있습니다 :

delete from example 
    where not exists (select 1 
         from example e2 
         where e2.vendor = example.vendor and 
          e2.migrate = 'Y' 
        ); 

으로 SQLFiddle에서 이것을 테스트하려면 delete을 쿼리 창이 아닌 왼쪽 창 (스키마 창)에 넣어야합니다.

+0

그래, 그랬어. 고든 고마워. – Keven