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

MySQLでテーブルをマージする方法

    $insertSQL1 = "INSERT INTO sr1_full (`date`, `total_pending`, `appt_today`, `percent_appt_today`) SELECT `date`, `total_pending`, `appt_today`, `percent_appt_today` FROM `sr1`";
    
    $insertSQL2 = "INSERT INTO sr2_full (`date`, `total_pending`, `appt_today`, `percent_appt_today`) SELECT `date`, `total_pending`, `appt_today`, `percent_appt_today` FROM `sr2`";
    
    $insertSQL3 = "INSERT INTO sr3_full (`date`, `total_pending`, `appt_today`, `percent_appt_today`) SELECT `date`, `total_pending`, `appt_today`, `percent_appt_today` FROM `sr3`";
    

    ;を追加します 2つのSQLステートメントを組み合わせる。

    これらのクエリは次のように組み合わせることができます。

    $insertSQL_Single = $insertSQL1.";".$insertSQL2.";".$insertSQL3;
    

    結果のクエリ:

    INSERT INTO sr1_full (`date`, `total_pending`, `appt_today`, `percent_appt_today`) SELECT `date`, `total_pending`, `appt_today`, `percent_appt_today` FROM `sr1`;INSERT INTO sr2_full (`date`, `total_pending`, `appt_today`, `percent_appt_today`) SELECT `date`, `total_pending`, `appt_today`, `percent_appt_today` FROM `sr2`;INSERT INTO sr3_full (`date`, `total_pending`, `appt_today`, `percent_appt_today`) SELECT `date`, `total_pending`, `appt_today`, `percent_appt_today` FROM `sr3`
    

    PhpMyAdminを使用してこれを試しました。クエリは成功しました

    mysql_query()では実行できません 。他のトリックを見つけましょう。個別に実行する必要があります。

    これを実行するにはmysqliを使用してください

    $mysqli = new mysqli("host","username","password", "databasename");
    if (!$mysqli->multi_query($insertSQL_Single)) {
        echo "Multi query failed: (" . $mysqli->errno . ") " . $mysqli->error;
    }
    else
    {
        echo "success";
    }
    


    1. PL/pgSQLを使用してPostgreSQLのレコードとして複数のフィールドを返します

    2. Sequelize:WHERELIKE句のフィールドを連結します

    3. mysqlのWHERE句でエイリアスを使用できますか?

    4. セッションの変更により、Hibernateを介したクエリの速度が低下します