Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

é possível inserir com base na seleção em uma das colunas no MySQL?


Tente INSERT...SELECT declaração
INSERT INTO student_fees(id, name, fees) 
SELECT ... -- put here the SELECT STATEMENT with condition

se sua coluna ID é auto incremented , você não precisa especificar o 1 ou então causará um erro.
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.

Outro ponto é, se você deseja inserir apenas uma coluna do student 's, você precisa especificar a condição, para que você não receba um erro de restrição (assumindo que o ID da sua coluna é a Chave Primária )
INSERT INTO student_fees(name, fees) 
SELECT `name`, '200$' 
FROM   students
WHERE  columnName = 'blahBlah'

ATUALIZAÇÃO 1

Ao ver seu comentário, você tem 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

você precisa remover o user_id coluna acima OU você precisa adicionar um ID em sua instrução select para corresponder ao número de colunas.