我现在有三张表a,b,c.其中a是主表,内联b,c.
现在的问题是b表中有符合条件的记录5条,c表中有符合条件的记录2条,当连接了a表后,查询结果集变为了10条,而这时如果要对b,c表中的数据求和就会产生错误。请问如何解决。小弟谢过先!!
现在的问题是b表中有符合条件的记录5条,c表中有符合条件的记录2条,当连接了a表后,查询结果集变为了10条,而这时如果要对b,c表中的数据求和就会产生错误。请问如何解决。小弟谢过先!!
用inner join 试试
1 1 10 1 5
2 1 15 1 6
1 20 2 7
1 25 3 5
1 30
2 20现在数据是这样的
如果用a inner join b a.id=b.id inner join c a.id=d.id and a.id=1 就会得到10条记录
这样用sum(b.money)就会得到10条记录的总和,就是多了一倍,而sum(c.count)就多了5倍。
我现在想得到b里面 id=1的money总和,c里id=1里的总和。不知道现在这样解释清不清楚了,请大虾们指教!
。。怎么还有个d.id?
select a.id,sum(b.money),sum(c.count) from a inner join b on a.id =b.id inner join c on a.id=c.id group by a.id
WHERE B.BID=A.AID AND C.CID=A.AID AND A.AID=1
WHERE B.BID=A.AID AND A.AID=1
UNION
SELECT SUM(C.COUNT),A.AID FROM TABLEA A,TABLEC C
WHERE C.CID=A.AID AND A.AID=1
你可以先对b,c分别group by求和,a 也group by,然后再是三表相连接.
select sum(money ) from(select distinct b.* from a inner join b on a.id =b.id inner join c on a.id = c.id)
where id = 1
有问题再说
select sum(money ) from(select distinct b.* from a inner join b on a.id =b.id inner join c on a.id = c.id)
where id = 1
谢谢各位的指教!