t1 和 t2 两个表 做查询
+----------[t1]--------------+
 | goods_id | goods_number |
 +----------+--------------+
 |        1 |            0 |
 |        3 |           10 |
 |        3 |         1000 |
 |        4 |           26 |
 |       86 |         1000 | +---------[t2]-------------+
 | goods_id | goods_number |
 +----------+--------------+
 |        1 |            1 |
 |        3 |           10 |
 |        3 |           10 |
 |        4 |           26 |
 |        6 |          100 |select goods_id,sum(goods_number)  from (  select goods_id,goods_number from t1  union all  select goods_id,goods_number from t2  ) a  group by goods_id  取得合计数量。
如果我要单独获取 每一个表的合计值 如何取得?
写成下面的样子 只能取到 ff,就是第一个 而第二个取不到值。这是为什么? 
或者我将两值作减法 ff-ll 想取得这个结果如何取得?
select goods_id, ff ,ll from (  select goods_id,goods_number as ff from t1  union all  select goods_id,goods_number as ll from t2  ) a  group by goods_id selectmysql子查询嵌套unionall

解决方案 »

  1.   

    select goods_id,sum(ff)  ,sum(ll)  
    from (  
    select goods_id,goods_number as ff,0 as ll from t1  
    union all  
    select goods_id,0,goods_number as ll from t2  
    ) a  
    group by goods_id 
      

  2.   

    或者我将两值作减法 ff-ll 想取得这个结果如何取得?select goods_id,sum(goods_number) 
     from (  
     select goods_id,goods_number from t1  
     union all  
     select goods_id,-1*goods_number from t2  
     ) a  
     group by goods_id 
      

  3.   

    select goods_id,sum(goods_number) 
    from t1  
    group by goods_id
    union all  
    select goods_id,goods_number
    from t2
    group by goods_id