[MySQL] INSERT INTO ... SELECT

Steusi

Nasenbär
Hallo, ich durchsuche schon seit einer Weile alle SQL Statements. Doch leider finde ich nicht das passende, ob ich verstehe es falsch.

Ich möchte ein INSERT INTO machen, wobei bestimmte VALUES aus anderen Tabellen herangezogen werden müssen.

Natürlich könnte ich in meinem PHP Script die einzelnen SELECT Anweisungen auch vorher ausführen und extra abspeichern, jedoch möchte ich es gern in einer Abfrage erreichen um Zeit zu sparen.

Mein SQL-Statement:
PHP:
for($i=0;$i<$size_arr;$i++){
    $insert_qry = "INSERT INTO packet (store_id,
                                       loading,
                                       creator,
                                       order_id,
                                       ve,
                                       carton_lineup,
                                       carton)
                          VALUES ((SELECT ID FROM store WHERE loading = $loading),
                                  '".$loading."',
                                  '".$_SESSION["user_nickname"]."',
                                  (SELECT ID FROM article WHERE number = $artnr[$i]),
                                  '".$ve[$i]."',
                                  '".$karton_V_pal[$i]."',
                                  '".$karton[$i]."')";
}
läuft auch Problemlos durch, nur werden die inneren SELECT-Anweisungen ignoriert und 0 eingesetzt. Gibt es eine Möglichkeit mein Vorhaben zu realisieren?
 
Zuletzt bearbeitet:
Mach einen klassischen INSERT INTO ... SELECT draus
SQL:
INSERT INTO packet (
	store_id,
   	loading,
   	creator,
   	order_id,
   	ve,
   	carton_lineup,
   	carton)
SELECT
	(SELECT ID FROM store WHERE loading = {$loading}),
	'{$loading}',
	'{$_SESSION["user_nickname"]}',  
	(SELECT ID FROM article WHERE number = {$artnr[$i]})
	'{$ve[$i]}',
	'{$karton_V_pal[$i]}',
	'{$karton[$i]}'
 
Zuletzt bearbeitet von einem Moderator:
Danke euch beiden,
Steiner_B hatte Recht. Hab ich mittlerweile auch bemerkt, was für ein dummer Fehler. Danke

Einen großen Dank auch an yaslaw, na klar so geht es natürlich auch. Ich habe immer gerätselt wie ich mit der Schreibweise zu meinem Ziel kommen kann.
Aber ich kann beim SELECT ja auch einfach eine Variable schreiben, das war mir bereits nicht bekannt.
 
Zurück