从具有相同列名的两个不同表计数,如果相同名称,则计数组tehm

时间:2016-04-30 06:44:28

标签: mysql

我有两个具有相同结构的表:

表-1:

+----------------------+--------------+-----+
| Field                | Type         | Key |
+----------------------+--------------+-----+
| id                   | int(5)       | PRI | 
| country              | varchar(500) |     | 
+----------------------+--------------+-----|

表-2:

+----------------------+--------------+-----+
| Field                | Type         | Key |
+----------------------+--------------+-----+
| id                   | int(5)       | PRI | 
| country              | varchar(500) |     | 
+----------------------+--------------+-----|

表格中的数据如下: 表-1:

+----+---------+
|id  | country |
+----+---------+
| 1  | A       | 
| 2  | B       |   
| 3  | A       | 
| 4  | A       | 
| 5  | B       | 
+----+---------+

表-2:

+----+---------+
|id  | country |
+----+---------+
| 1  | A       | 
| 2  | B       |   
| 3  | B       | 
| 4  | B       | 
| 5  | B       | 
+----+---------+

当我使用以下查询语句时:

SELECT country, COUNT(*) AS result FROM table-1 GROUP BY country UNION SELECT country, COUNT(*) AS result FROM table-2 GROUP BY country;

我得到的结果如下:

+--------+---------+
|country | result  |
+--------+---------+
| A      | 3       | 
| B      | 2       |   
| A      | 1       | 
| B      | 4       | 
+--------+---------+

分别显示table-1和table-2的计数。但我希望计数结合如下:

+--------+---------+
|country | result  |
+--------+---------+
| A      | 4       | 
| B      | 6       |   
+--------+---------+

提前致谢。

1 个答案:

答案 0 :(得分:1)

select t.country,count(t.country)
from 
(
select * from table1
union all 
select * from table2
) t group by t.country

<强> Demo

相关问题