我的用户和分支表包含以下数据
**users table**
id ManagerID
1 3
2 1
3 5
4 null
5 4
**Branch Table**
id parent_ID related_user_id
100 4
200 3
300 5
400 1
** parent_ID是分支表中id(分支表)的引用。 ManagerID是用户表中id(users表)的父级。 id 4有空ManagerID表示没有父。
现在所有的ManagerID都已在分支表中可用,它们基本上是用户表的id,现在我需要从id更新父ID 分支表。 从上面的例子可以看出,id 1的ManagerID在用户表中是3,而id 3可用作对应于Manager表中id 200的related_user_id。 所以id 1的父ID应该是200。 我需要在单个查询中从上面的信息更新,结果应该是
**Branch Table**
id parent_ID related_user_id
100 null 4
200 300 3
300 100 5
400 200 1
请给我解决方案......
答案 0 :(得分:0)
这应该做你想要的:
UPDATE Branch b1
JOIN users u ON u.id = b1.related_user_id
LEFT JOIN Branch b2 ON b2.related_user_id = u.ManagerID
SET b1.parent_ID = b2.id;