天天看点

查询表中重复记录

联表查询、去除重复值、查找 表中 多余 的重复记录 、查找表中 没有重复记录的行

select * from table1

select * from table2

select a.*,b.* from table1 a, table2 b where a.id=b.e

-- 查询表 1 列X有重复的值,则只取一条

select min(id) as id,b,c from table1 group by b,c order by id asc

-- 1、查找表中 多余的重复记录 ,重复记录是根据单个字段(peopleId)来判断

select * from table1 where b in (select  b  from  table1  group  by  b  having  count(b) > 1)

-- 1、查找表中 没有重复记录的行

select * from table1 where b in (select  b  from  table1  group  by  b  having  count(b) = 1)

select a.*,b.id,b.e from table1 a inner join (select min(id) as id,e from table2 group by e) b on a.id=b.e

-- 查询2表关联的,而且不重复的记录

select aa.*,bb.f from (select a.*,b.ids,b.e from table1 a inner join (select min(id) as ids,e from table2 group by e) b on a.id=b.e) aa inner join table2 bb on aa.ids=bb.id