现在有一个业务场景,两张表SY_USER 表 SY_ORG表
其中SY_ORG表的ORGID = SY_USER表的USERNAME
现在有一个需求 要求剔除 A表中(USER) 相对于B表(ORG)表 多余的数据 根据对应关系
编写sql代码
查询出两张表中的重复项
select DISTINCT u.username from SY_USER u where u.username
in (select o.ORG_ID from SY_ORG o)
查询出A表中相对于B表多余的数据
select DISTINCT u.username
from SY_USER u where u.username
NOT in (select o.ORG_ID from SY_ORG o)
删除A表中相对于B表多余的数据
delete SY_USER ur where UR.username IN
(select DISTINCT u.username from SY_USER u where u.username
NOT in (select o.ORG_ID from SY_ORG o))
关于distinct 关键字使用方法
SELECT DISTINCT 列名称 FROM 表名称
使用distinct 关键字只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只能返回它的目标字段,而无法返回其它字段。distinct关键字也可以用作多余项的删除 如本文。