日期:2014-05-16  浏览次数:20834 次

多表统计的查询语句
我要从三个表中统计数据
表T1,T2,T3
三个表中有以相同的字段,a,我想按照a分组
要统计的三个字段是,T1.b,T2.b,T3.b
我写的查询语句是,

select   T1.a,sum(T1.b),sum(T1.b),sum(T1.b)   from   T1,T2,T3    
where   T1.b=T2.b   and   T1.b=T3.b
group   by   T1.a

这样又进行了笛卡尔乘积。
请问语句该怎么改呢,谢谢!

------解决方案--------------------
不会产生笛卡尔成绩的。

select
T1.a,
sum(T1.b),
sum(T2.b),
sum(T3.b)
from T1,T2,T3
where T1.a=T2.a and T1.a=T3.a
group by T1.a





select
T1.a,
sum(T1.b),
sum(T2.b),
sum(T3.b)
from ((T1 inner join T2 on T1.a=T2.a)
inner join T3 on T1.a=T3.a)
group by T1.a