2017-10-08 3 views
1

Ich benutze den nächsten Code, aber es schlägt fehl und ich weiß nicht warum.Update-Feld mit einer Unterabfrage mit linken Join und group_concat aus einer anderen Tabelle

UPDATE pd 
SET pd.meta_categories = x.categories 
FROM t_product_description pd 
JOIN (
    SELECT p.product_id AS productid, GROUP_CONCAT(cd.name SEPARATOR ' ') AS categories 
    FROM t_product AS p 
    LEFT JOIN t_product_to_category AS p2c ON (p2c.product_id = p.product_id) 
    LEFT JOIN t_category_description AS cd ON (cd.category_id = p2c.category_id) 
    GROUP BY p.product_id 
) x ON pd.product_id = x.productid 
+0

was meinst du mit „aber es funktioniert nicht“ .. Sie haben einen Fehler ? dann zeige die Fehlermeldung. Sie haben ein falsches Ergebnis? Zeigen Sie eine Datenprobe der erwarteten Ergebnisse und Ihres Ergebnisses. – scaisEdge

Antwort

0

in mysql die Klausel wurde zuerst beitreten, (brauchen nicht aus) und die der set-Klausel und

UPDATE t_product_description pd 
JOIN (
    SELECT p.product_id AS productid, GROUP_CONCAT(cd.name SEPARATOR ' ') AS categories 
    FROM t_product AS p 
    LEFT JOIN t_product_to_category AS p2c ON (p2c.product_id = p.product_id) 
    LEFT JOIN t_category_description AS cd ON (cd.category_id = p2c.category_id) 
    GROUP BY p.product_id 
) x ON pd.product_id = x.productid 
SET pd.meta_categories = x.categories 
Verwandte Themen