2013-01-31 31 views
0

好,我有兩個表: 表1看起來像這樣:計數和在不同的表分組相同的命名的柱(MySQL的)

id age gender 
1 10 M 
2 11 F 
3 11 F 

和表2看起來像這樣(相同與不同的值):

id age gender 
1 11 F 
2 12 M 
3 10 M 

現在我想我的最終輸出如下所示:

age count 
10 2 
11 3 
12 1 

瓦at是達到此目的的最有效方式?

+0

你想知道「最有效的方式」,或只是「辦法」? – Strawberry

+0

通過http://stackoverflow.com/questions/725556/how-can-i-merge-two-mysql-tables中的一種方法合併表格,然後做GROUP BY年齡 – ryanbwork

+0

@Strawberry很抱歉回覆晚了, '一種方式'和'最有效的方式':D – pewpewlasers

回答

5

你想要聚合上聯:

select age, count(*) 
from (select id, age, gender from table1 union all 
     select id, age, gender from table2 
    ) t 
group by age 
+0

嘿感謝您的回答,像一個魅力工作...如果你有一些時間可以請你也檢查一下嗎? :D http://stackoverflow.com/questions/14641572/counting-and-grouping-same-named-column-in-different-tables-where-clause-from-o – pewpewlasers

+1

@ user1768337。 。 。無論您是進行聯合/聚合(如此處所述)還是聚合/聯盟/聚合,都是一個真正的性能問題。對於大型數據集,我可能會想要做後者。 –

0

試試這個

select age ,count(age) count from table1 group by age 
union 
select age, count(age) count from table2 group by age 
相關問題