Thử INSERT...SELECT
tuyên bố
INSERT INTO student_fees(id, name, fees)
SELECT ... -- put here the SELECT STATEMENT with condition
nếu cột của bạn ID
auto incremented
, bạn không cần phải chỉ định 1
nếu không nó sẽ gây ra lỗi cho bạn.
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.
Một điểm khác là, nếu bạn chỉ muốn chèn một cột từ student
của bảng, bạn cần chỉ định điều kiện, vì vậy bạn sẽ không gặp lỗi ràng buộc ( giả sử ID cột của bạn là Khóa chính )
INSERT INTO student_fees(name, fees)
SELECT `name`, '200$'
FROM students
WHERE columnName = 'blahBlah'
CẬP NHẬT 1
Xem bình luận của bạn, bạn có truy vấn này
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
bạn cần xóa user_id
cột trên HOẶC bạn cần thêm một ID
trong câu lệnh đã chọn của bạn để khớp với số cột.