sql >> データベース >  >> RDS >> Mysql

2つのテーブルを結合し、third-sqlに保存します

    INSERT INTO TableC
    SELECT
      t.word,
      SUM(COALESCE(a.countA, 0)) AS CountA,
      SUM(COALESCE(b.countB, 0)) AS countB
    FROM
    (
       SELECT wordA AS word FROM tableA
       UNION
       SELECT wordB FROM tableB
    ) AS t
    LEFT JOIN tableA AS a on t.word = a.wordA
    LEFT JOIN tableB AS b on t.word = b.wordb
    GROUP BY t.word
    

    SQLフィドルデモ

    これにより、次のことが可能になります:

    |   WORD | COUNTA | COUNTB |
    |--------|--------|--------|
    |     ab |      0 |     10 |
    |    abc |     25 |     40 |
    |   abcd |     29 |      0 |
    |  abcde |     45 |     90 |
    | abcdef |      0 |     55 |
    


    1. 同義語の空のResultSetを返すDatabaseMetaData.getColumns

    2. Sqlldr - 終了して囲まれたフィールドの後にターミネータが見つかりません

    3. PostgreSqlテーブルのUUID、CHAR、およびVARCHARのパフォーマンスの違いは?

    4. PHPとMySQLを使用したサーバーサイドイベント