sql – 在oracle树查询中加入其他表

前端之家收集整理的这篇文章主要介绍了sql – 在oracle树查询中加入其他表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
给出一个简单的(id,description)表t1,例如
  1. id description
  2. -- -----------
  3. 1 Alice
  4. 2 Bob
  5. 3 Carol
  6. 4 David
  7. 5 Erica
  8. 6 Fred

和父子关系表t2,如

  1. parent child
  2. ------ -----
  3. 1 2
  4. 1 3
  5. 4 5
  6. 5 6

Oracle提供了一种遍历此方法方法,它具有一些自定义语法扩展:

  1. select parent,child,sys_connect_by_path(child,'/') as "path"
  2. from t2
  3. connect by prior parent = child

确切的语法并不重要,我可能在上面做了一个错误.该
重要的是,上面会产生一些看起来像的东西

  1. parent child path
  2. ------ ----- ----
  3. 1 2 /1/2
  4. 1 3 /1/3
  5. 4 5 /4/5
  6. 4 6 /4/5/6
  7. 5 6 /5/6

我的问题是:是否可以在sys_connect_by_path()中连接另一个表,例如上面的t1表,以生成类似于:

  1. parent child path
  2. ------ ----- ----
  3. 1 2 /Alice/Bob
  4. 1 3 /Alice/Carol
  5. ... and so on...

解决方法

查询中,将T2替换为连接T1和T2的子查询,并返回父,子和子描述.然后在sys_connect_by_path函数中,引用子查询中的子描述.

猜你在找的MsSQL相关文章