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

mysqlを使用して1つのテーブルから別のテーブルに欠落しているレコードを挿入します

    LEFT OUTER JOINを使用することもできます そのために。これにより、サブクエリのオーバーヘッドが回避されます(システムがに対してサブクエリを1回実行する場合 ジョン・ウーの回答のように外部クエリのレコード)、user2340435のように既存の800レコードを上書きする不要な作業を回避します:

    INSERT INTO b
    SELECT a.* FROM a
    LEFT OUTER JOIN b ON b.id = a.id
    WHERE b.id IS NULL;
    

    これにより、最初にAからすべての行が選択されます およびB 両方のテーブルのすべての列を含むテーブル。ただし、Aに存在する行の場合 Bには存在しません Bのすべての列 テーブルはNULLになります 次に、そのような後者の行のみをフィルタリングします(WHERE b.id IS NULL )、そして最後にこれらすべての行をBに挿入します テーブル。



    1. MySQL:大きなテーブルをパーティションに分割しますか、それとも別々のテーブルに分割しますか?

    2. SparkDataframesUPSERTからPostgresテーブルへ

    3. Google Cloud Platform(GCP)でのMySQLフェイルオーバーとフェイルバックの実現

    4. SQLiteでNULLを「N/A」に置き換える3つの方法