联表查询、去除重复值、查找 表中 多余 的重复记录 、查找表中 没有重复记录的行
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;//列X指的是id?
[与select min(id) as id,b,c from table1 group by b,c;结果集是一样的]
-- 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
====================================================================================