Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
insert und select in einer query [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
insert und select in einer query


 
hOk
31-05-2002, 21:52 
 
Hallo Leute,
habe ein kleines Problem was ich nicht gelößt bekomme.

Ich möchte in eine Tabelle einen Datensatz einfügen,
den ich aus einer anderen Tabelle ermittle.

INSERT tabelle1 (spalte1, spalte2)
VALUES("blup", SELECT sum(ostereier) FROM tabelle2)

Das geht leider nicht und alles andere was ich probierte
ging auch nicht.

Würde mich sehr über einen Tip freuen,
netten Gruß, hOk

 
Berni
31-05-2002, 22:00 
 
subselects kommen erst in der Version 4.

in deinem Fall musst du alle Aktionen einzeln ausführen. Also erst das select und dann insert.

 
hOk
31-05-2002, 22:32 
 
Ahh, vielen vielen Dank,
da hätte ich ja noch lange probieren können.

netten Gruß und eine schönes Wochenende, hOk

 
Troublegum
31-05-2002, 22:35 
 
Das geht schon @Berni:


INSERT INTO tabelle 1 (feld1,feld2,feld3) SELECT feld1,feld2,feld3 FROM tabelle2

 
hOk
31-05-2002, 22:46 
 
Interessant, den hatte ich auch probiert, doch
ich hab es nicht hinbekommen nur einen Wert
für den insert aus der anderen Tabelle zu fischen?

 
Troublegum
31-05-2002, 22:51 
 
Sollte eigentlich klappen: siehe hier (http://www.mysql.de/documentation/mysql/bychapter/manual.de_Reference.html#INSERT_SELECT)

 
hOk
01-06-2002, 12:02 
 
Mmh, es scheint nicht zu gehen,
diese Query erscheint mir wie eine
Zeilenkopie, welche nur bei gleicher
Spaltenanzahl funktioniert.
netten Gruß, hOk

 
Troublegum
01-06-2002, 12:08 
 
Nö. Leidiglich die Anzahl der Ergebnisse des SELECT Ausdrucks muss mit der Anzahl der Spalten in der Spaltenliste im INSERT Ausdruck übereinstimmen. Und natürlich der Typ.

Ich habe nur gleiche Feldnamen gewählt in dem Beispiel. Schau doch mal hier (http://www.mysql.de/documentation/mysql/bychapter/manual.de_Reference.html#INSERT_SELECT). Da ist alles genau erklärt.

 
hOk
01-06-2002, 12:17 
 
Klar hatte ich schon gelesen,
genau das ist ja so schade,
denn ich würde halt gerne nur
ein Feld aus dem Select holen,
und den rest so eintragen, wie
oben in meinem Beispiel.
netten Gruß, hOk

 
Troublegum
01-06-2002, 12:31 
 
Ja, das geht ja auch:


INSERT INTO tabelle1 (feld1,feld2) SELECT "Hallo",nochwas FROM tabelle2

 
hOk
01-06-2002, 16:33 
 
Genial,
vielen, vielen Dank
schöne Grüße, hOk


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:02 Uhr.