mysql两表条件查询合并成新表找出指定字段重复出现多次的数据

本文结合自己最近写的mysql,分享一下关于两张表条件查询生成新表,查找新表中指定字段重复出现数据及次数。

表一:字段id,address,type

表二:字段id,address

问:查询出两张表中address没有重复且type=1的所有数据。

select id,address,count(address) as count from (
select id,address from 表二
union all
select id,address from 表一 where type=1
) as a GROUP BY address HAVING count <= 1

结果如图:


举一反三:如果我们需要找出重复的address及重复次数只需要把<=改成>1即可。

关键字说明:

    UNION ALL只是简单的将两个结果合并后就返回

    group by进行分组

    having对分组数据进行操作

Mysql衍生需求:

    1、查询表一type出现的次数

select id,type,count(type) as count from 表一 GROUP BY type

    2、查询表一type只出现过一次的数据

select id,type,count(type) as count from 表一 GROUP BY type having count<=1

    3、两张表数据合并查询出来

select id,address from (
select id,address from 表二
union all
select id,address from 表一
) as a

mysql还有更多使用,大家需要自行探索。


六月初字帖坊小程序 你想要的字帖模板及工具,这里都有!