Intenta INSERT...SELECT
declaración
INSERT INTO student_fees(id, name, fees)
SELECT ... -- put here the SELECT STATEMENT with condition
si su columna ID
se auto incremented
, no tienes que especificar el 1
o de lo contrario le causará un error.
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.
Otro punto es, si solo desea insertar una columna del student
, necesita especificar la condición, por lo que no obtendrá un error de restricción (suponiendo que su ID de columna sea la clave principal )
INSERT INTO student_fees(name, fees)
SELECT `name`, '200$'
FROM students
WHERE columnName = 'blahBlah'
ACTUALIZACIÓN 1
Al ver tu comentario, tienes esta consulta
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
necesitas eliminar el user_id
columna de arriba O necesita agregar un ID
en su declaración de selección para que coincida con el número de columnas.