是基於選擇以下插入的列可能的一個在MySQL是基於MySQL的列中的某一列進行插入的可能嗎?
INSERT INTO student_fees(id, name, fees)
VALUES(1, SELECT name from students where student_id = 1, 200$)
如果是的話,並例子將真正幫助。
-Thanks
是基於選擇以下插入的列可能的一個在MySQL是基於MySQL的列中的某一列進行插入的可能嗎?
INSERT INTO student_fees(id, name, fees)
VALUES(1, SELECT name from students where student_id = 1, 200$)
如果是的話,並例子將真正幫助。
-Thanks
嘗試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.
另一點是,如果你只想要插入來自student
的表一列,你需要喲指定的條件,所以你不會得到約束錯誤(假設您的列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語句以匹配列數。
INSERT INTO coupon_allotment(page_id,offer_id,coupon_code,user_id)SELECT page_id,4,'ABC'FROM pages_discounts_association WHERE discount_id = 4這是我的實際查詢,你能改正這個嗎? – 2012-08-10 09:17:16
這是一些列不匹配。我剛更新了我的查詢,看看它現在是否有效。 – 2012-08-10 09:19:28
是的工作感謝您的幫助:) – 2012-08-10 09:20:11
只需使用普通INSERT INTO ... SELECT
語法和選擇其他字段常量,如下所示:
INSERT INTO student_fees(id, name, fees)
SELECT 1, `name`, '200$' FROM students
does not work following is is actual query:INSERT INTO'coupon_allotment'(page_id,offer_id,coupon_code,user_id)SELECT page_id,4,'ABC'FROM'pages_discounts_association' WHERE'discount_id' = 4 – 2012-08-10 09:13:39
@Abhishek您在實際查詢中的表有4列(page_id,offer_id,coupon_code,user_id),而在'SELECT'中你只有3個。你必須在'SELECT'中有許多列,就像你在INSERT語句中爲這個查詢工作一樣! – Sirko 2012-08-10 09:16:54
@Abhishek:你必須在'VALUES(...)'和'SELECT'中有相同數量的字段。在你的情況:4場,然後3場。 – Jocelyn 2012-08-10 09:17:07
試試這個:
INSERT INTO student_fees(id, name, fees)
Select 1, name,'200$' from students
[MySQL手冊](http://dev.mysql.com/doc/refman/5.5/en/insert-select.html)明確指出它是可能的。但是你的語法是錯誤的。 – Jocelyn 2012-08-10 09:13:43