select * from ddd a,ccc b where a.id=b.idselect a.*,sum(b.car_sid*b.car_bid) from ddd a,ccc b where a.id=b.id
第一个语句得出的记录数一共有5条。
第二个只有一条,百思不得其解。求解,谢谢。

解决方案 »

  1.   

    select a.*,sum(b.car_sid*b.car_bid) from ddd a,ccc b where a.id=b.id
    你这用了个SUM, 所以MYSQL会把这条记录处理成select a.*,sum(b.car_sid*b.car_bid) from ddd a,ccc b where a.id=b.id group by a.*
      

  2.   

    select a.*,sum(b.car_sid*b.car_bid) from ddd a,ccc b where a.id=b.id竟然语法没有报错?
      

  3.   

    一般来说 如果select 后面有聚合函数 比如你的sum
    那么其他的列就要作为分组列 比如select 后面你写的a.*那么规范的写法是这样的
    select a.col1,a.col2 ,sum(b.car_sid*b.car_bid) from ddd a,ccc b where a.id=b.id
    group by a.col1,a.col2 
      

  4.   

    明白了我知道sum是针对列的,sum(a)我很容易明白什么意思,但是sum(a,b)怎么理解呢
      

  5.   

    呵呵,是的,我写错了,sum(a*b)
      

  6.   

    意思是不是:a字段和b字段先做乘法运算,然后做sum求和,搞不懂
      

  7.   

    http://school.cnd8.com/photoshop/jiaocheng/33903.htm