Hi, Christian Schult wrote:
Ich probiere mich gerade an MySQL und habe folgendes Problem: Ich möchte beim Erstellen eines Datensatzes einen der Werte aus einer anderen Tabelle selektieren, und zwar mit Hilfe einer WHERE-Klausel. Ich bekomme aber einfach die richtige Syntax nicht hin:
mysql> insert into table1 (feld1, feld2, feld3) values (wert1, wert2, (select wert3 from table2 where feldfoo = 'bar'));
Ich hoffe das geht prinzipiell irgendwie in einem Rutsch, es wäre doch sehr umständlich, wenn ich immer selber in table2 nachsehen müsste, wie der zu übernehmende Wert lautet.
Mysql kann (noch) keine Subselects: Kapitel 5.4.1 Mysql Doku (Sub-selects) The following will not yet work in MySQL: SELECT * FROM table1 WHERE id IN (SELECT id FROM table2); SELECT * FROM table1 WHERE id NOT IN (SELECT id FROM table2); However, in many cases you can rewrite the query without a sub-select: SELECT table1.* FROM table1,table2 WHERE table1.id=table2.id; SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id=table2.id where table2.id IS NULL .... in der doku sind ein paar beispiele drin, wie man das umgehen kann, aber frag mich jetzt nicht wie ;-) -- MfG, M.Stahn ++ Deflector shields just came on, Captain. ++ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com