Verschachtelte SQL-Statements.

kahra

Mitglied
Das Problem ist folgendes:

Ich will in eine Tabelle (tb_endwert) Werte einfuegen. Einige Werte sollen aus einer anderen Tabelle übernommen werden (tb_ini_wert).

Folgendermaßen klappt es:
Code:
INSERT INTO tb_endwert VALUES ( NULL, 'hello', 
   (SELECT wert1 FROM tb_ini_wert WHERE id =1 ),
   (SELECT wert2 FROM tb_ini_wert WHERE id =1 ),
             ...
   (SELECT wertn FROM tb_ini_wert WHERE id =1 ),
'world');

Das würde sicher gehen und raubt auch nicht soviel Performance aber es muss doch besser gehen.
Mein Ansatz war folgender, hab auch etwas rumgespielt aber leider hat nichts gefunzt.

Code:
INSERT INTO tb_endwert VALUES ( NULL, 'hello', 
   (SELECT wert1, wert2, ... , wertn FROM tb_ini_wert WHERE id =1 ),
'world');

Nur leider klappt das überhaupt nicht. Ich benutze mySQL Version 4.1.xx (weiß leider nicht genau).

Bin für jeden Hinweis dankbar.
 
Zuletzt bearbeitet:
Vielleicht klappt es so?
Code:
INSERT INTO tb_endwert SELECT NULL, 'hello', wert1, wert2, ... , wertn, 'world' FROM tb_ini_wert WHERE id =1
Hab's jetzt nicht getestet, aber könnte klappen.
 
Ahh danke für den Hinweis, kann es leider erst zu Hause testen, aber ich glaube du hast recht.
IEine ähnliche Idee hatte ich auch schon, ich wusste nur nicht wie ich die Konstanten mit einbringen sollte.
IIch berichte in ein paar Tagen wie der Selbstversuch lief.
 
Zurück