UPDATE auf eine Zeile mit Werten einer anderen

Hallo,
ich brauche Hilfe bei einem UPDATE statement.

ich habe eine Tabelle products (id_product, id_lang, description, description_short, link_rewrite, meta_description, meta_keywords, meta_title, name, available_now, available_later)

Es existieren zwei Datensätze:
(11, 1, dxm,DXM EN,)
(11, 3, Description, Desc short, dxm,DXM DE,)

Nun möchte ich die fehlenden Daten im ersten Datensatz aktualisieren mit den Daten aus dem zweiten. Sprich Die Beschreibung auf Deutsch nach Englisch kopieren, wenn diese nicht existiert.

Und das ganze dann für alle Produkte in der Tabelle (id_product).

Ich hoffe ich habe es verständlich erklärt. Wäre für Vorschläge dankbar, auch in PHP, wenn es damit am einfachten geht…

Danke

Update zieltab
set description=quelltab.description,
description_short=quelltab.description_short

/* usw */
from products as zieltab inner join products as quelltab
on zieltab.id_product=quelltab.id_product
where zieltab.name =‚DXM EN‘
and quelltab.name=‚DXM DE‘

ungetestet - funktioniert aber so z. B. mit MS SQL

Guten Tag,

Danke schön,

damit sollte es funktionieren, allerdings scheint MySql win Problem mit der Syntax zu haben…

UPDATE zieltab
SET description=quelltab.description,
description\_short=quelltab.description\_short,
link\_rewrite=quelltab.link\_rewrite,
meta\_description=quelltab.meta\_description,
meta\_keywords=quelltab.meta\_keywords,
meta\_title=quelltab.meta\_title,
available\_now=quelltab.available\_now,
available\_later=quelltab.available\_later
FROM ps\_product\_lang AS zieltab
INNER JOIN ps\_product\_lang AS quelltab
ON zieltab.id\_product=quelltab.id\_product
WHERE zieltab.name='DXM' AND quelltab.name='DXM'

Folgender Fehler kommt dann:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‚FROM ps_product_lang AS zieltab INNER JOIN ps_product_lang AS quelltab ON ziel‘ at line 10 (1064)

Habs mal kurz unter MySQL getestet - hier wird bei verknüpften Tabellen so upgedatet

UPDATE

ps_product_lang AS zieltab
INNER JOIN ps_product_lang AS quelltab
ON zieltab.id_product=quelltab.id_product

SET zieltab.description=quelltab.description,
zieltab.description_short=quelltab.description_short,
zieltab.link_rewrite=quelltab.link_rewrite,
zieltab.meta_description=quelltab.meta_description,
zieltab.meta_keywords=quelltab.meta_keywords,
zieltab.meta_title=quelltab.meta_title,
zieltab.available_now=quelltab.available_now,
zieltab.available_later=quelltab.available_later

WHERE zieltab.name=‚DXM‘ AND quelltab.name=‚DXM‘

Guten Tag,

Super, mit der Änderung der WHERE-Bedingung auf die id_lang wurde die Beschreibung bei allen Produkten aktualisiert wie ich es wollte.

Danke sehr für die Hilfe und die Mühe mit MySQL Test/Anpassung!