Update statement mit bedingung in zweiter tabelle

chgozdz

Grünschnabel
Hi

wie kann ich das folgende SQL statement in MySQL umsetzen. Ich bin derzeit etwas am verzweifeln:

update products set products_status = 1 where id in (select id from webfetch_products where life=1;
 
Hi

da fehlt zum einen die schließende Kammer vom Select-Statement.
Immer vorausgesetzt, Du benutzt eine mySQL-Version, die Subselects unterstützt.
 
Die Fehlende klammer war ein copy & paste fehler.

UPDATE products SET products_status =1 WHERE id IN (
SELECT id
FROM webfetch_products
WHERE life =1
)


Ich bekomme halt folgende Fehlermeldung:
#1064 - You have an error in your SQL syntax near 'select id from webfetch_products where life=1)' at line 1


Eine Idee?

Wo kann ich denn subselects bei MySQL einschalten. Ich habe auf jeden Fall root-Zugang
 
Zuletzt bearbeitet:
Hi

Subselects werden erst ab mySQL Version 4.1 unterstützt.
Du solltest mal nachschauen, ob Du diese Version hast.

Wenn nicht, muss man es anderes lösen, evtl. über einen left join.
 
Meine MySQL version ist 3.23.49
damit also nicht neu genug.

Wie kann man das mit left join machen. Ich hab das zwar versucht bin aber gescheitert
 
Hallo

sorry, ich habe mich verlesen. Ist ja ein Update, kein Select. Ich fürchte, da kannst Du die Konstruktion nicht anwenden.

Auch ein Ansprechen 2er Tabellen

bsp.

UPDATE tab SET status =1 from tab, tab1 where tab.id != tab1.id

ist nicht möglich.

Mir fällt auch keine Funktion in mySQL ein, muss aber nicht heißen, dass es diese nicht gibt. Wenn nicht noch jemand anderes eine Idee hat, dann würde ich einen Select zu Hilfe nehmen, mir die IDs auslesen und dann updaten.
 
Zurück