2016-09-23 1 views
0

테이블 xx_org, xx_people 및 xx_asg가 있습니다. org_id는 xx_asg와 xx_org 사이에서 공통이고 asg_id는 xx_people과 xx_asg 사이에서 공통입니다.SQL에서 conditon에 따라 테이블에서 삭제

이제 xx_asg에 xx_asg가없는 xx_org와 extra_info라는 열 값을 가진 xx_people의 개인 ID에서 'ITEM_OTB'라는 조직을 삭제하고 싶습니다. 내가 EXTRA_INFO 'ITEM_OTB'내가 제대로 이해하면, 그 사람들의 조직 식별자는

답변

1

을 삭제해야합니다으로해야합니까 xx_person에서 thsoe 명이며이 중 하나에 내 두 번째 요구 사항을 통합하려면 어떻게

XX_ORG     XX_PEOPLE      XX_ASG 

ORG_ID     PERSON_ID      ASG_ID 
ORG_NAME    PERSON_NAME      ASG_NAME 
LEGAL_ENTITY   PERSON_NUMBER     ORG_ID 
         ASG_ID 
         EXTRA_INFO 

DELETE FROM XX_ORG WHERE 
ORG_ID NOT IN (SELECT DISTINCT ORG_ID FROM XX_ORG); 

, ITEM_OTB와 같은 추가 정보를 가진 사용자가있는 asg에있는 조직을 제외하고 모든 조직을 삭제하려고합니다.

DELETE 
FROM  XX_ORG 
WHERE  ORG_ID NOT IN (
       SELECT  DISTINCT a.ORG_ID 
       FROM  XX_ASG a 
          INNER JOIN XX_PEOPLE p ON a.ASG_ID = p.ASG_ID 
       WHERE  p.EXTRA_INFO = 'ITEM_OTB');