我有一个包含许多实体的表1和另一个包含2列的表(表2):表1的主键和第二列。表1中的实体具有由表2中的第二列分配的若干其他实体(也来自表1)
例:
id | type | ownerId
1 | bigObject | 1
2 | littleObj | 3
3 | littleObj | 3
id | key
1 | 2
1 | 3
我希望将所有littleObjects的ownerId更新为big对象的ownerId。
我尝试了什么:
UPDATE entity
SET ownerid = (SELECT ownerid
FROM entity
WHERE id = 1)
WHERE id IN (SELECT key
FROM table_b
WHERE id = 1)
;
但是它说你不能在FROM子句
中指定目标表,实体'进行更新答案 0 :(得分:0)
您必须使用MySQL,因为这会产生错误。请改用此表格:
UPDATE entity e CROSS JOIN
(SELECT ownerid
FROM entity
WHERE id = 1
) e1
SET e.ownerid = e1.ownerid
WHERE id IN (SELECT key
FROM table_b
WHERE id = 1)