Versuchen INSERT...SELECT
Anweisung
INSERT INTO student_fees(id, name, fees)
SELECT ... -- put here the SELECT STATEMENT with condition
Wenn Ihre Spalte ID
auto incremented
ist, müssen Sie nicht 1
angeben, da sonst ein Fehler verursacht wird.
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.
Ein weiterer Punkt ist, wenn Sie nur eine Spalte von der student
‚s Tabelle einfügen möchten, müssen Sie yo den Zustand angeben, so dass Sie nicht Einschränkungsfehler erhalten (Ihre Spalte ID vorausgesetzt, ist der Primärschlüssel)
INSERT INTO student_fees(name, fees)
SELECT `name`, '200$'
FROM students
WHERE columnName = 'blahBlah'
UPDATE 1
Sehen Sie Ihren Kommentar hinzu, haben Sie diese Abfrage
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
Sie benötigen die user_id
Spalte oben zu entfernen, oder Sie brauchen eine ID
in Ihrer SELECT-Anweisung zu geben, um die Anzahl der Spalten übereinstimmen.
Das [MySQL-Handbuch] (http://dev.mysql.com/doc/refman/5.5/en/insert-select.html) besagt eindeutig, dass es möglich ist. Ihre Syntax ist jedoch falsch. – Jocelyn