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

MySQLの列の1つでselectに基づいて挿入することは可能ですか?

    INSERT...SELECTをお試しください ステートメント

    INSERT INTO student_fees(id, name, fees) 
    SELECT ... -- put here the SELECT STATEMENT with condition
    

    列のIDの場合 auto incremented1を指定する必要はありません そうしないと、エラーが発生します。

    INSERT INTO student_fees(name, fees) 
    SELECT `name`, '200$' 
    FROM students         -- this will select all students on the table
                          -- and add $200 on thier fees.
    

    もう1つのポイントは、studentから1つの列だけを挿入する場合です。 のテーブルでは、条件を指定する必要があるため、制約エラーは発生しません(列IDが主キーであると想定

    INSERT INTO student_fees(name, fees) 
    SELECT `name`, '200$' 
    FROM   students
    WHERE  columnName = 'blahBlah'
    

    アップデート1

    あなたのコメントを見て、あなたはこのクエリを持っています

    INSERT INTO coupon_allotment (page_id, offer_id, coupon_code, user_id) 
    SELECT page_id, 4, 'ABC'        -- number of columns mismatch, right?
    FROM pages_discounts_association 
    WHERE discount_id = 4
    

    削除する必要があります user_id 上記の列または追加が必要 ID 列の数と一致させるために、selectステートメントで。



    1. MariaDB Enterprise Clusterとは何ですか?

    2. Oracle <>、!=、^=演算子

    3. DoctrineでLIMITを使用したサブクエリ

    4. ボレーを使用してPDFをアップロードしますが、サーバーフォルダーにnullファイルを取得します