2016-04-30 24 views
0

我有兩個表具有相同的結構:計數如果同名

表-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  | 
+--------+---------+ 

這都說明表 - 的數1和表2 seperately。但我想計數結合如下:

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

在此先感謝。

回答

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

Demo

+0

將這項工作如果兩個表中列的數量是不同的? – user5358888

+0

FYI ..During工會沒有。列應same.Let我知道你的條件/情況下,我可以給你想要的輸出 –

+0

查詢,如果有3列在表1和表2 4列,其中常見的是國列,其中計數required..Can請你讓我知道在這種情況下.. \ – user5358888