2017-10-08 38 views
1

我正在使用下一個代碼,但它失敗了,我不知道爲什麼。使用帶有左連接的子查詢和來自另一個表的group_concat的更新字段

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

你是什麼意思有「但它失敗」 ..你有一個錯誤?然後顯示錯誤消息。你有錯誤的結果?展示一個數據樣本預期的resutl和你的actula結果。 – scaisEdge

回答

0
在MySQL中加入條款成爲第一

,(不要從需要)和設置的條款和

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 
相關問題