我在MySQL表中克隆了几个shop_id = 233到shop_id = 255的类别。该表的结构是:
Table name: **t_category**
fields: id, name, parent_id, shop_id
现在我拥有shop_id = 255的这些克隆类别,但parent_id与shop_id = 233中的类别相关。我应该更新克隆类别的parent_id。
首先,我正在尝试编写一个自连接,如:
SELECT p.id AS 'Parent',
c.id AS 'Child'
FROM t_category c
INNER JOIN t_category p ON p.id = c.`parent_id` and c.shop_id = 255
如何更新克隆类别的父ID?
答案 0 :(得分:0)
我认为你要做的是在父记录上设置shop_id,所以这样的事情应该这样做:
UPDATE t_category
SET shop_id = 233
WHERE id IN (SELECT p.id from t_category c JOIN t_category p ON p.id = c.`parent_id` and c.shop_id = 255)
答案 1 :(得分:0)
好的,如果我理解,你想要在商店255中获取每个ID,在商店233中找到它的相应ID,获得该id的父亲(在233中),然后在商店255中找到相应的父,对吗? / p>
假设每个商店中没有重复的名称,这就是我在SQL Server中的表现方式..对MySQL来说可能是一样的:
UPDATE t255
SET parent_id=p255.id
FROM t_category t255
INNER JOIN t_category t233 ON t255.Name=t233.Name AND t233.shop_id=233
INNER JOIN t_category p233 ON p233.id=t233.parent_id
INNER JOIN t_category p255 ON p255.Name=p233.Name
WHERE t255.shop_id=255