0
           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クエリコマンドでこれを行う方法を見つけるのはちょっと難しいです。どんな助けでも大歓迎です:)

4

1 に答える 1

2

UNION を使用して両方の元のテーブルを 1 つのテーブルに結合し、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 にない機能である 2 つのテーブルの 1 つを実装します。

于 2013-05-12T18:10:35.513 に答える