同时统计多个表中的数据的问题
例如有2个或更多的表 serv1,serv2....servN
表serv1如下:
name state
------------------
bill bussy
kar normal
kate normal
表serv2如下:
name state
----------------
bill normal
kar normal
kate bussy
如果是求表serv1 中字段state 为bussy,normal 的个数分别为多少时,可以用
select state,count(*) from serv1 group by state
这句就可以了,但如果我要求在两张表中字段分别为bussy ,normal该怎么办?
而且,有更多表有7张,10张表呢?
当然,我知道建立视图可以实现,请问各位大大有没有不用视图的方法?
[解决办法]
两种方法:
1、
select state,count(*) from (select * from serv1 union all select * from serv2 ) t
group by state
2、
select state,sum(c) from (select state,count(*) c from serv1 group by state union all select state,count(*) c from serv2 group by state) t group by state