相关文章推荐
酷酷的烈马  ·  Eclipse整合JPA + Struts ...·  1 年前    · 
悲伤的机器人  ·  js image ...·  1 年前    · 
暴躁的机器猫  ·  python - ...·  1 年前    · 

现在有一个业务场景,两张表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关键字也可以用作多余项的删除 如本文。

现在有一个业务场景,两张表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.usern......
1. select distinct A.ID from A where A.ID not in (select ID from B); 2. select A.ID from A left join B on A.ID=B.ID where B.ID is null; 3. select * from B where (select count(1) as num from A wher
删除A 在B 表中 不存在 的记录 第一种方式 select * from A where not exists (select 1 from B where A.ID = B.ID) 第二种方式 select * from A where (select count(1) as num from B where B.ID = A.ID) =...
mysql 数据库 中一张 与另一张 有相同的 一个 字段,需要过滤出 t_camera 中在 t_sys_role_camera 表中 不存在 数据 ,利用关键字 NOT EXISTS来实现。 同理可以使用EXISTS 关键字来查询一张 在另一张 表中 存在的 数据 。 SELECT t_camera t WHERE NOT EXISTS ( SELECT t_sys_role_camera...
SQL查询 ~ 存在 一个 而不在另 一个 表中 数据 A、B两 ,找出ID字段中,存在A ,但是 不存在 B 数据 。A 总共13w 数据 ,去重后大约3W条 数据 ,B 有2W条 数据 ,且B 的ID字段有索引。   使用 not in ,容易理解,效率低 执行时间为:1.395秒 1 select distinct A.ID from A where A.ID not in (select ID from B)   使用 left join…on… , “B.ID isnull” 示左连接之后在B.ID
A、B两 ,找出ID字段中,存在A ,但是 不存在 B 数据 。A 总共13w 数据 ,去重后大约3W条 数据 ,B 有2W条 数据 ,且B 的ID字段有索引。 使用 not in ,容易理解,效率低 执行时间为:1.395秒 1 select distinct A.ID from A where A.ID not in (select ID from B) 使用 left join…on…...
一张 与另一张 有相同的 一个 字段,需要过滤出 law_firm 中在 push_record 表中 不存在 数据 ,利用关键字 NOT EXISTS来实现。 同理可以使用 EXISTS 关键字来查询一张 在另一张 表中 存在的 数据 。 SELECT law_firm f WHERE NOT EXISTS ( SELECT push_record p WHERE
SQL Join子句,主要用在select语句中,把两个或多个 的行结合起来,基于这些 之间的共同字段(往往是id字段)来查询,从多个 表中 返回满足条件的所有行。常见join子句类型常见join子句类型有INNER JOIN(同JOIN)、LEFT JOIN、RIGHT JOIN、FULL JOIN,其中第一种为内连接,后三种为外连接。不同的join子句类型区别如下图所示: 介绍其中4种: 1、方法一(仅适用单个字段):使用 not in ,比较容易理解,缺点是效率低 如:select A.ID fro