我正在尝试在公司网上商店中进行更新,但我竭尽全力试图找出正确的SQL命令来执行以下操作:
我有三个表:
Products
------------
pId
pSearchParams
ProductCategories
------------------
pcProductId // products.pId
pcCategoryId // categories.catId
Categories
----------
catId
catName
我需要pSearchParams
使用products
表中字段的信息来更新表中的catName
字段categories
。
我这样做的唯一方法是将products
表链接到productcategories
表,因为productcategories
表是我可以在products
表和categories
表之间建立链接的唯一方法。
问题是在productcategories
表格中,pcProductId
很可能在多行中包含相同的信息,同样适用pcCategoryId
(例如,产品可以在多个类别中)
我需要运行一条UPDATE
语句以使用相关的类别名称更新表pSearchParams
中的所有字段,以products
允许使用多个类别名称。
如果我需要提供更多信息,请告诉我。谢谢。
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
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句