sql >> Database >  >> RDS >> Mysql

is invoegen op basis van selecteren op een van de kolommen in MySQL mogelijk?

Probeer INSERT...SELECT verklaring

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

als uw kolom ID wordt auto incremented , hoeft u de 1 . niet op te geven anders krijg je een fout.

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.

Een ander punt is, als je slechts één kolom wilt invoegen uit de student 's tabel, moet u de voorwaarde specificeren, zodat u geen beperkingsfout krijgt (ervan uitgaande dat uw kolom-ID de primaire sleutel is )

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

UPDATE 1

Bij het zien van je reactie heb je deze vraag

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

je moet verwijderen de user_id kolom hierboven OF je moet toevoegen een ID in uw select-statement om overeen te komen met het aantal kolommen.



  1. Een berekend veld maken in een Microsoft Access-query

  2. Postgres:resultaten filteren met ARRAY_AGG en HAVING (in plaats van WHERE)

  3. Hoe alle ongeldige objecten in PostgresQL te tonen?

  4. vriendenlijst ophalen in mysql