下面是基于 MySQL 中可能的列之一的选择的插入
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
是自动递增
,您不必指定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
为了匹配列数。
关于mysql - 是否可以基于 MySQL 中某一列的选择进行插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11898532/