我正在尝试在我的公司eshop上运行更新,但我正试图找出正确的SQL命令来执行以下操作:
我有三张桌子:
Products
------------
pId
pSearchParams
ProductCategories
------------------
pcProductId // products.pId
pcCategoryId // categories.catId
Categories
----------
catId
catName
我需要使用pSearchParams
表格中products
字段中的信息更新catName
表格中的categories
字段。
我能做到这一点的唯一方法是将products
表链接到productcategories
表,因为productcategories
表是我在{{products
表之间建立链接的唯一方法1}}表和categories
表。
问题是在productcategories
表中,pcProductId
可能包含多行的相同信息,pcCategoryId
也是如此(例如,产品可以是多个类别)
我需要运行UPDATE
语句来更新pSearchParams
表中包含相关类别名称的所有products
字段,从而允许多个类别名称。
如果我需要提供更多信息,请告诉我。感谢。
答案 0 :(得分:1)
UPDATE products AS p
JOIN productcategories AS pc ON (p.pId = pc.pcProductId)
JOIN categories AS c ON (pc.pcCategoryId = c.catId)
SET p.pSearchParams = c.catName
更新
UPDATE products AS p
SET p.pSearchParams = (
SELECT GROUP_CONCAT(c.catName SEPARATOR ' ')
FROM productcategories AS pc
JOIN categories AS c ON (pc.pcCategoryId = c.catId)
WHERE pc.pcProductId = p.pId
GROUP BY pc.pcProductId
)