【发布时间】:2021-09-29 09:52:29
【问题描述】:
我在父子结构和扁平结构中都有 2 个层次结构数据表
父子表:
PARENT_ID CHILD_ID
1234 1111
1234 2222
1234 3333
3333 33XX
3333 33YY
扁平结构:
LEVEL_1 LEVEL_2 LEVEL_3
1234 1111
1234 2222
1234 3333 33XX
1234 3333 33YY
我有另一个用户表,其中包含哪个用户可以访问哪个 ID
USER_ID USER_ACCESS
USER_A 1234,1111
USER_B 33YY,3333,1234
我已将上表进一步转换为以下格式
USER_ID USER_ACCESS
USER_A 1234
USER_A 1111
USER_B 33YY
USER_B 3333
USER_B 1234
如果他的 ID 已经存在 parent_id,我需要为每个用户查找并删除 child_id
上面的示例输出
USER_ID USER_ACCESS
USER_A 1234
USER_B 1234
需要在任一 Oracle/SQL Server 中避免任何循环的解决方案。
【问题讨论】:
-
我迷路了。你说。你有“一张桌子”。然后你有两列和三列的示例数据。那不是一张桌子。
-
而 USER_ACCESS 是“csv 列”?喜悦
-
@CaiusJard 它是一个 varchar 列,ID 用逗号分隔
-
太可惜了。
-
@CaiusJard 为什么会这样?
标签: sql sql-server oracle