Mysql
 sql >> Database >  >> RDS >> Mysql

è possibile inserire in base alla selezione su una delle colonne in MySQL?

Prova INSERT...SELECT dichiarazione

INSERT INTO student_fees(id, name, fees) 
SELECT ... -- put here the SELECT STATEMENT with condition

se la tua colonna ID è auto incremented , non è necessario specificare il 1 altrimenti ti causerà un errore.

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.

Un altro punto è, se vuoi inserire solo una colonna dallo student 's table, devi specificare la condizione, in modo da non ricevere un errore di vincolo (supponendo che l'ID della tua colonna sia la chiave primaria )

INSERT INTO student_fees(name, fees) 
SELECT `name`, '200$' 
FROM   students
WHERE  columnName = 'blahBlah'

AGGIORNAMENTO 1

Vedendo il tuo commento, hai questa domanda

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

devi rimuovere il user_id colonna sopra O è necessario aggiungere un ID nell'estratto conto selezionato per far corrispondere il numero di colonne.