MySQL で可能な列の 1 つでの選択に基づいて次の挿入です
INSERT INTO student_fees(id, name, fees)
VALUES(1, SELECT name from students where student_id = 1, 200$)
はいの場合、例は本当に役に立ちます。
-ありがとう
INSERT...SELECT
ステートメントを試してください
INSERT INTO student_fees(id, name, fees)
SELECT ... -- put here the SELECT STATEMENT with condition
列ID
がauto incremented
の場合、 を指定する必要はありません。そうしない1
と、エラーが発生します。
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
上記の列を削除するか、列の数を一致させるために select ステートメントにを追加する必要があります。user_id
ID
次のように、通常のINSERT INTO ... SELECT
構文を使用して、他のフィールドを定数として選択するだけです。
INSERT INTO student_fees(id, name, fees)
SELECT 1, `name`, '200$' FROM students
これを試して:
INSERT INTO student_fees(id, name, fees)
Select 1, name,'200$' from students