我有表xx_org,xx_people和xx_asg。 org_id在xx_asg和xx_org之间是通用的,而asg_id在xx_people和xx_asg之间是通用的。
现在我希望从xx_org中删除这些组织,其中org_id不在xx_asg中,而xx_people中的人员id具有列值extra_info为' ITEM_OTB'。
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);
我如何将我的第二个要求纳入xx_person的那些人,他们将extra_info作为' ITEM_OTB' ,那些人的组织也应该被删除
答案 0 :(得分:1)
如果我理解正确,我们希望删除除asg中存在的所有组织以外的所有组织,这些组织的额外信息等于ITEM_OTB。
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');