当我们使用分表或者多个不想关的表但其中某一个字段所存储的值是一样的,那么我们进行查重

A表

id name
1 张三
2 王五

B表

id name
1 李四
2 张三

C表

id name
1 李二
2 张三

需求

需要将上述三个表中的name合并去重

实现

1
2
3
4
5
6
select DISTINCT d.name FROM ( 
select name FROM A GROUP BY name
UNION ALL
select name FROM B GROUP BY name
UNION ALL
select name FROM C GROUP BY name) d

结果

张三
王五
李四
李二

如果需要统计总数

1
2
3
4
5
6
select count(DISTINCT d.name) as num FROM ( 
select name FROM A GROUP BY name
UNION ALL
select name FROM B GROUP BY name
UNION ALL
select name FROM C GROUP BY name) d