如何从不同的表中添加不同的列?

时间:2014-05-18 15:32:44

标签: mysql add

我只是想从不同的表中添加不同的列...有没有人知道如何做到这一点?

考虑我有3个表格如下

  1. 电视销售
  2. AC销售
  3. 冷却器销售
  4. 表格数据如下

    1)电视销售

       Id    Date        NoOfSales   Totalamount
    
        1    03/05/2014     10         10000
        2    04/05/2014     20         20000
        3    05/05/2014     30         30000
    

    2)销售

       Id    Date        NoOfSales   Totalamount
    
       1    03/05/2014     10         50000
       2    04/05/2014     20         60000
       3    05/05/2014     30         70000
    

    3)冷却销售

       Id    Date        NoOfSales   Totalamount
    
       1    03/05/2014     10         30000
       2    04/05/2014     20         60000
       3    05/05/2014     30         70000
    

    现在我想在特定“日期”的所有表格中添加“Totalamount” 例如,我需要在03/05/2014以tot00mount为90000

2 个答案:

答案 0 :(得分:1)

您可以通过组合要在不同表上聚合的信息来解决您的问题,并将它们相加。这看起来像是:

   SELECT t.Date,SUM(t.Totalamount)
    FROM
    (
      SELECT Date,Totalamount
      FROM tvSales
      UNION ALL
      SELECT Date,Totalamount
      FROM acSales
      UNION ALL
      SELECT Date,Totalamount
      FROM coolerSales
    ) t
    WHERE t.Date='03/05/2014'
    GROUP BY t.Date

联合字段的名称和类型必须相同。如果它们没有相同的名称,您应该在3个选择查询中为2列创建公共别名,然后在主查询上使用这些别名。此外,还应执行UNION,包括ALL关键字,以避免消除三个表中的重复记录。

答案 1 :(得分:1)

在MySQL中,最简单的方法是使用union all和聚合:

select date, sum(totalamount) as TotalSales
from ((select date, totalamount from TvSales
      ) union all
      (select date, totalamount from AcSales
      ) union all
      (select date, totalamount from CoolerSales
      )
     ) t
group by date;

您希望使用union all的原因是各个表中的日期不同。 join可以丢失行。

其次,有三个具有相同格式的表表明数据库设计不佳。您应该有一个包含销售额的表格和一个表明它所引用的产品类型的列。