【问题标题】:Mysql merge 1 table into a 2nd and count columns together [closed]Mysql将1个表合并到第二个表中并一起计算列[关闭]
【发布时间】:2013-05-06 19:05:27
【问题描述】:
           TABLE1       
|  ID    |  NAME   |   MONEY  |  POINTS |
|  1     |  Tim    |    200   |    1    |
|  2     |  Arne   |    500   |    2    |
|  3     |  Lies   |    600   |    3    |


           TABLE2       
|  ID    |  NAME   |   MONEY  |  POINTS |
|  1     |  Tim    |    1000  |    1    |
|  2     |  Arne   |    0     |    1    |
|  3     |  Gerard |    50    |    1    |

这是我需要通过合并它们得到的,列的钱和点的总和,如下表所示:

           TABLE3      
|  ID    |  NAME   |   MONEY  |  POINTS |
|  1     |  Tim    |    1200  |    2    |
|  2     |  Arne   |    500   |    3    |
|  3     |  Lies   |    600   |    3    |
|  4     |  Gerard |    50    |    1    |

很难找到如何使用 mysql 查询命令来执行此操作。 欢迎任何帮助:)

【问题讨论】:

  • 两张表有什么关系?

标签: mysql merge sum


【解决方案1】:

使用 UNION 将两个原始表合并为一个表,然后使用 SUM 聚合生成每一行的总计。

INSERT INTO table3 (name, money, points)
SELECT name, SUM(money), SUM(points)
FROM (SELECT name, money, points FROM table1
      UNION ALL
      SELECT name, money, points FROM table2) x
GROUP BY name

这实质上实现了两个表的FULL OUTER JOIN,这是 MySQL 缺乏的功能。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2022-09-28
  • 2022-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-02
  • 1970-01-01
相关资源
最近更新 更多