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

时间:2021-02-09 06:29:00

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

Name:GoldChao