354 Stimmen

INSERT mit SELECT

Ich habe eine Abfrage, die Einfügungen mit einer SELECT Erklärung:

INSERT INTO courses (name, location, gid) 
SELECT name, location, gid 
FROM courses 
WHERE cid = $cid

Ist es möglich, nur "Name, Ort" für das Einfügen auszuwählen und die gid zu etwas anderem in der Abfrage?

2voto

garish Punkte 557

Wir alle wissen, dass dies funktioniert.

INSERT INTO `TableName`(`col-1`,`col-2`)
SELECT  `col-1`,`col-2` 

\===========================
Die nachstehende Methode kann im Falle mehrerer "select"-Anweisungen verwendet werden. Nur zur Information.

INSERT INTO `TableName`(`col-1`,`col-2`)
 select 1,2  union all
 select 1,2   union all
 select 1,2 ;

1voto

Tobias Punkte 7076

Ich glaube, Ihre INSERT-Anweisung ist falsch, siehe korrekte Syntax: http://dev.mysql.com/doc/refman/5.1/en/insert.html

bearbeiten: wie Andrew bereits erwähnte...

-2voto

Die richtige Syntax für Ihre Anfrage ist:

INSERT INTO courses (name, location, gid) 
SELECT (name, location, gid) 
FROM courses 
WHERE cid = $cid

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X