日期:2014-05-18  浏览次数:20690 次

同时统计多个表中的数据的问题
例如有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